If you had said 'immigrants' instead of non-citizens you would have a stronger point. I don't have an issue with non-citizen immigrants voting. Part of the challenge is a.) proving someone exists and b.) proving they live in the district in which they voted. How do you solve this? Voter registration.
Ignoring all that, voting is both a right and privilege of citizenship. This can be revoked. As an example, convicted felons cannot vote.
The 15th Amendment says (note the word citizens):
> The right of citizens of the United States to vote shall not be denied or abridged by the United States or by any State on account of race, color, or previous condition of servitude. The Congress shall have the power to enforce this article by appropriate legislation.
The 19th Amendment then gave women the right to vote:
> The right of citizens of the United States to vote shall not be denied or abridged by the United States or by any State on account of sex. Congress shall have power to enforce this article by appropriate legislation.
So, it is very much a law to be a citizen in order to vote.
As an aside, what if a non-citizen of an EU country was vacationing for a month in said EU country. Should they be able to vote? Of course not.