- $30 a person isn't high end.
- Noone wants to pay in advance for meals.
- The merchant should be paid.
- The waitstaff does not set payment terms. Can anyone imagine being told our specials are ###... and we accept cash and debit cards, but not xx?
- Ask before being seated, especially in restaurants with local chefs.
It's my responsibility when asking a merchant to provide services that I understand the charge, and be able pay to pay for those services. In the US, our currency is ~guaranteed~ acceptance, credit cards are not.
In other countries, cards are often not accepted.
Taking it out on the wait staff is silly.
I usually keep an emergency $50 (2X20, 1X10) tucked away in my wallet for such cases. This stash isn't used very often, but when it is it is immediately replaced.