Obviously not everyone does it, but it's certainly not uncommon.
On the other hand, there are also a lot of costs associated with handling cash. The expense of tracking bills and coins and going to the bank every day is not insignificant. So it's pretty easy to argue that there's no reason for cash discounts either, because handling cash can actually be more expensive than handling cards, particularly when you're doing it for only 5 or 10 percent of customers.
The CC companies are only taking 2.5%-3.2%. If they're offering a 5% discount for cash - it's almost certainly tax evasion.
So if you buy a $2 Coke, it's not a $0.054 fee (2.7%), it's $0.354 (or a whopping 17.7%).
Maybe my dentist evades a few taxes, I dunno. But people buy cheap things at the bodega, so it probably is closer to the actual fees.
If it says debit on the front of the card, it is debit.
I’ve never seen this work in person, but some people claim their debit card worked as a credit card and whatnot. Even if that is true, all merchant systems I’ve worked with allow the merchant/cardholder to select debit or restrict transactions to only debit.
This isn't the full picture. Debit card transactions might only be a few cents. But you still have to pay a fixed cost for the machine and related bits. For some businesses, that cost might be too high to justify.