Those costs have been driven down by Stripe and cash isn’t without its own costs. I used to favor cash myself but a couple of local businesses here recently started requesting credit cards because it’s cheaper than dealing with counterfeiting.
Merchant accounts have long been below that, they were just a pain to get, and generally required hardware from the bank.
Stripe's selling point was never low fees. It was "you can be up and accepting cards in just a few minutes of coding", and that was well worth paying an extra percent or so.
CNP transactions (which stripe does) cost bit higher than CP transactions which require POS machine at mom/pop shops.