VISA and Mastercard used to ban these extra charges. But that must have changed as I have seen it in several small restaurants recently.
Its kind of weird in a way. I am also seeing more and more businesses NOT take cash and only take cards, so it is hard to know what to make of the current business models.
Theft and mistake protection. Entertainment places do this for concerts and such now routinely.