Why completely free? Because they use the money you store with them to make money for themselves. Why should I also have to pay them for the opportunity to use my money to make money?
It's not as simple as you make it sound. It costs money for banks just to
hold deposits--FDIC fees, overhead costs, etc.--and since the interest they can earn if they do lend it out is at historic lows, their profitability is greatly diminished. Even before the financial crisis, more than half of ordinary checking accounts were unprofitable.
That's why Bank of America floated the idea of charging for debit card purchases until the public outcry reached epic levels. "How dare you charge me to get my own money!" went the protests. But that's not what BoA was doing. They were charging people to obtain their own money
in a modified form--namely, a secured, insured, plastic form of payment accepted everywhere and that allowed near-instant approval to the vendor. All that infrastructure costs money, and banks aren't going to pay for it unless they can find a way to recoup the losses elsewhere.