Im really surprised the number of comments here who think the rewards are free money they're getting. The stores are paying 3-5% transaction fees for you to use credit cards then they give you 2-3% back and force you to spend it on things they deem can be redeemed. You're paying for that 2-3% back in higher prices for everything. The whole thing is a giant scam and should be shut down.
Anyone who likes economics or money should see it for what it is, a tax on every transaction. Of course you don't want anyone to lodge themselves into your market and get 3% skimmed off on every transaction. This, for the good of the free market, the fees must be limited to sub 1%, preferably zero.
The cost of accepting cash is not necessarily lower - you have take into account higher theft risk, miscounts and cost of delivering it to the bank. Also there is no incentive for businesses to pass saved fees to customers.