I always pay with credit card because it offers the best protection in any dispute with the store. That might be additional reason they prefer checks or cash. In addition credit card offsets my payment for about a month.
There is no federal law against charging more for credit card payments, but it is prohibited in California, Colorado, Connecticut, Florida, Kansas, Maine, Massachusetts, New York, Oklahoma and Texas. Would you buy anything from business breaking state law?