In the case of VISA/MasterCard or other credit/debit card companies, yes, the merchant pays the fees, but not because they want.
The merchants are faced with a dilemma: if they don't support debit/credit card payments, they get less customers. If they want debit/credit payments, they have to sign a contract with these debit/credit card companies, that forces them to comply with some rules. The most important rule is that they cannot pass the credit/debit card fees to the customer, that is, the price for an item should always be the same regardless of the payment method chosen.
In the case of bitcoin, the system is designed, from the start, as a "push" method, as @Marc already said, so the user is the one in charge of paying the fee, in principle. Thing is, as fees raise in the market (because of bitcoin blocks becoming full), customers will try to pay the smaller fees possible, which will make transactions slower to confirm, which is bad for the merchant because it makes the purchase process feel even slower than it's already (as merchants want to wait as many confirmations as possible before considering an item being paid, to avoid double-spend attacks), scaring customers away.
Therefore, it's not unreasonable to think of a not so distant future in which the merchant will use techniques to speed up this process by contributing part of the fee themselves. One of these techniques is called CPFP: Child Pays For Parent, and consists in attaching a higher fee to a subsequent transaction (depending on the first transaction), to attract more miners to process it, and so that both transactions happen faster.