The credit card companies make the merchant pay a fee for using credit cards - so it's not the shop's fault. That's another reason why cash is alive in America.
The bigger reason is to avoid taxes. If it’s paid with card, taxes have to be paid, and with cash, the merchant can make an extra 30%+ by not declaring it.