Given that credit cards are such a common form of payment, I suspect that any small business owner builds the fees into what they charge. It's probably a nice bonus for them to be paid by check and not deal with the fee, but I'd bet most of their customers pay with credit cards.
So I wouldn't feel bad about using a credit card.
I think credit cards is probably the least bad option for most business.
Taking checks exposes you to bad check writers, which especially if you are dealing with tourists are almost certainly a total write-off.
Credit cards obviously have fees, but they have numerous advantages. First, nowadays credit card transactions are significantly faster than cash, especially with young math-challenged clerks,and much faster than checks. They also provide a backup security check to avoid employee theft or just accounting mistakes.
Cash has many hidden costs. My non-profit pays $10K a year for armored car service to pick up cash every week. That seems expensive but the alternative is paying someone to deposit the cash
There are also counting fees. Our auditor charges us several thousand dollars to make quarterly surprise cash audits. Where they check that counts in the cashier's drawers match the records.
That may seem overkill, but about 20 years ago (when credit card usage was lower), one of our employees ripped over $200,000 over the course of a couple of years. Employee theft is a fact of life for restaurants and retailers. The lower the percentage of cash transactions the easier it is to track.
Yes, you are helping your tradesman if you give him a check or cash for a $500 job, but at your local pizza joint, pay by credit card, you aren't really doing them a favor by giving them cash.