It’s kind of how it should be. Otherwise people not paying by credit card are subsidising people who do. It might encourage the card companies to lower their fees.
They're doing this because they can get away with it. Purely and simple. Large part of this 2% is extra profit.