No. Most banks have free checking, but you have to maintain what's known as a "Minimum Balance." Basically you have to have anywhere from $200-$500 in your checking account at all times. If you have under that amount, the bank starts charging you fees for not having enough money in your account. I'm talking fees like $25-$50 every few days, if not daily. Your account can quickly and easily go into the negatives if you're not careful. What happens then is the bank closes your account, you owe them money, and you have a black mark on your record making it that much more difficult to open a checking account at another bank down the road.
A lot of people who live on the financial edge can't afford that minimal balance or the risk that comes with having a checking account. So they don't have one. Instead, they go to places like Wal-Mart, their local grocery store, or ironically, their bank to just have their check cashed right out. They have to pay a processing fee to do so. The fee usually starts out at about $5 dollars or so but quickly goes up. The larger your check is, the more you have to pay to cash it.
Edit: As I posted in another comment, the fee can vary.