If your a small business, having to accept card payments - especially for smaller transactions - cuts into your profit. If your customers pay in cash then you get the full amount of the transaction, if they want to pay with card you either have to add on a processing fee which could put some customers off purchasing or you have to take the hit and make less money per sale.
I always pay in cash when buying from a small local businesses, unless its an expensive transaction and I want the extra cover that my credit card gives me just in case the business goes under before I get my goods or service.