This is really funny, because I'm white programmer from California, and I experienced a "hardship" that prevented me from voting four years ago. I admit it was a stupid misunderstanding on my part, but here it goes: I was registered at a polling place in SoCal on election day, but was living in NorCal for school. They didn't let me vote. Proof: "If you moved more than 15 days before the election AND you moved to anot…
They can't vote in local or state elections but you should have been allowed to vote for President. Federal elections just require you to be registered in the state.
With voting limited to your designated polling place, all they have to do is have at each polling place a list of people who are registered to vote there, and check them off as they are let in to vote.
With "vote anywhere" voting, you'd have to have the polling places all coordinating in semi-real time to maintain one big list. If a polling place lost network connectivity they might have to suspend voting there until it is fixed, and in less densely populated areas where polling places might be very far apart that could be a big deal for the people who came to vote at that location.
The semi-real time constraint is that when someone votes at place X, then for each other polling place Y in the state, the knowledge that the person has voted at X must be available at Y in less time than the person can travel from X to Y.
Note that you cannot rely on simply detecting who voted more than once after the fact and disqualifying their votes, because you won't know who they voted for and so won't be able to correct the count.
There are ways to design systems so that you could vote anywhere, with after the fact checking that does allow the count to be corrected instead of semi-real time checking, without having to keep track of who voted for whom, but those would require big changes to how we vote [1]. Until we can do something like that, limiting in-person voting to a designated polling place is probably here to stay.
[1] For example, one could do a system based on a digital cash system. There are digital cash systems where a bank can issue you a digital dollar (basically a string of bits) that has these two properties: (1) the bank can recognize it as a digital dollar they issued when someone tries to deposit it, (2) the bank cannot tell who they issued it to, and (3) if the same digital dollar is deposited twice, the bank then can tell who it was issued to.
Using such a system, election officials could play the role of the bank, setting up two different kinds of such digital dollar systems (I'm assuming a two party race). One system issues "Digital Trump Dollars" and one issues "Digital Clinton Dollars". Each registered voter is issued one Trump dollar and one Clinton dollar. To vote, the voter "spends" the digital dollar for their candidate at any polling place, and simply deletes the digital dollar of the other candidate.
To count, the election officials simply see which candidate has had more of their digital dollars deposited. If someone deposits their candidates digital dollar at more than one polling place (or more than once at the same polling place), the election officials know who they were and they know which candidate's digital dollar it was so that they can correct the count.