Everyone forgets points/cashback. That visa card you just got that gives you 2% cashback? That doesnt come from thin air. It comes from the merchants pockets paying their transaction fee.
I think the contracts (or consumer inertia) still make stores advertise at the credit-card price, and the different price for cash has to be advertised as a discount.
http://www.interest.com/credit-cards/news/you-soon-could-be-...
From that article it sounds like it was part of a lawsuit that was settled. I had thought it was through one of the consumer financial protection bills that happened after the housing bubble pop.
Also important to note that most merchants opted NOT to switch to charging extra because it would have upset their customers, so really, by allowing that in the past, it primed consumers to expect the same price for both. Tricky devils...