The rules vary by state. The majority of states require employers to grant paid time off for workers to vote unless there is a substantial period outside of their normal working hours that they could vote. Vote411.org has a summary of every state's rules.
BusinessInsider has a similar summary, claiming that 30 out of 50 states require employers to allow people to leave early to vote.
In Minnesota, for example,
You have a right to take time off work to vote without losing your pay, personal leave, or vacation time.
Your employer must pay you for the time you need to vote, if it falls within your scheduled work time. Your employer cannot require you to use personal leave or vacation time (see Minnesota Statutes 204C.04 and 204C.08 subd. 1d)
from the Minnesota Secretary of State website, https://www.sos.state.mn.us/elections-voting/election-day-voting/time-off-work-to-vote/
As for "why not have it on a weekend", Wikipedia has this to say:
A uniform date for choosing presidential electors was instituted by the Congress in 1845. Many theories have been advanced as to why the Congress settled on the first Tuesday after the first Monday in November. The actual reasons, as shown in records of Congressional debate on the bill in December 1844, were fairly prosaic. The bill initially set the day for choosing presidential electors on "the first Tuesday in November," in years divisible by four (1848, 1852, etc.) [...]
In 1845, the United States was largely an agrarian society. Farmers often needed a full day to travel by horse-drawn vehicles to the county seat/parish seat to vote. Tuesday was established as election day because it did not interfere with the Biblical Sabbath or with market day, which was on Wednesday in many towns.
Since then, there simply has not been the political will to pass a change.