ATM cards started out with no fees in the US, although not by law, by the network rules. The banks said they needed to use them to save cost on tellers. After some years after they felt the public was hooked on them, they started charging fees for "foreign" ATM usage, meaning a machine that wasn't from your bank. I seem to recall some banks tried charging their *own* customers for ATM usage for a bit. lol, that didn't last long.
Here banks get away with a lot of BS fees because changing banks is a bit of a bother. I end up changing banks every couple of years because they throw some new crap at me or one of their shortcomings gets to be too much. My latest bank can't provide me with copies of all my transactions via online banking. I'll be with a new bank before too long.