Many of the major banks charge fees if your bank account is below a certain threshold [0], often in the range [$1000,1500] for the required minimum balance. Any balance below that, you typically need direct deposit to avoid the fees.
And banks have a (in the US) deservedly poor reputation amongst the poor.
Less common now (maybe barred now?), banks would take the day's transactions and apply them in an order which deliberately fucked the customers. Let's say your balance is $100, and you get paid $1500 today. But you're living paycheck to paycheck so you delayed bill payments until today. You pay 5 bills, total value of $1000 (you have enough, technically). The banks would order the execution of those transactions to hit you with overage fees for as many of the payments as possible. If you noticed it right away, they'd refund the money with a phone call (and a few hours of your time on hold). Otherwise, you're just out a couple hundred dollars. All your bills will have been paid, but you would have been hit with up to five $25-75 overdraft fees before your deposit was finally processed.
Or how Wells Fargo was creating accounts for people without their consent, resulting in people who had enough money in their accounts suddenly not and being hit with fees and penalties for their trouble.
[0] They'll also change these in the fine print periodically. My free checking was a $1000 minimum with Bank of America. I'd switched to USAA for most things, but they have no physical branches. Occasionally needing a real bank, I left the $1000 in my BoA account, then one month I got hit with a fee. Turned out they'd bumped the minimum to $1500, found the letter and it was indeed small print indicating the change to the small print, buried in 10 or so pages of material about my account.