Andrew has been exploring the question. For us, the answer is simple: location, location, location.
I bank in two places: Navy Federal Credit Union, and Citibank. NFCU is better in all ways except one: they don't have a branch in DC. That means that every time I want to make a deposit, I have to drive out to Virginia. So I tend to go there once every few months and put a bunch of cash in the bank for our regular or big expenses: car loan, wedding stuff, rent and utilities. But it is not a convenient place to do my every day banking.
Indeed, the whole reason I'm at Citibank in the first place is that they're all over the country, and I've spent the last ten years moving a bunch of times. Even now that I've committed to DC, I'm in a rental, and I don't know what neighborhood I'm likely to end up in next, so there's no point in opening a new bank account that might turn out to be inconvenient one move later.
Then there's business travel--most places I go, if I lose my ATM card, there's a Citibank branch that can help e out in the area.
I realize that's not the entire story--most people are much less mobile than young urban professionals. But America does have high rates of labor mobility, and a lot of people travel for work. That's going to favor national banks--which in turn, lets them offer less favorable terms to their customers. I'm paying for convenience. But frankly, it's worth it.