As a matter of habit, I never deal with cash while staying in the US. All I have on hand is a few credit cards, which also means using the ATM would incur fees. At the same time I am aware that it's expected to leave a tip to room cleaning, at least in 3+ star hotels. But how am I supposed to do this if I don't use cash? Is it expected that one takes out a few bills just for tipping purposes? Or should I ask the reception to add a tip to my bill?
Yes, you are expected to have some cash for tipping purposes. You might also need it if a bellman carries your bags to/from your room or you receive other tipped services. Many people don't tip housekeeping, but if you're going to leave a tip, do it in cash. The front desk should be happy to make change if you need it; they want you to be able to tip. With planning, ATM fees can be low to zero, and you can further reduce their effects by taking out more cash and holding onto it if you travel to the US more than once.
Asking the front desk to add a tip to your bill would be unusual and may not be something the hotel could handle (besides a hotel restaurant and room service). I'd have little confidence of it working, or the tip actually ending up with the correct person.
Not all businesses in the US take credit cards, and small independent businesses will often prefer cash for small purchases, so it's helpful to have a bit of cash on hand anyway for something as simple as a water or soft drink from a cart on the street.
If you don't want to tip the people who serve you in the US, then don't stay in a hotel, eat in a restaurant, etc. That's the only real answer.
When you travel to other countries, you are expected to make at least a token effort to accommodate local customs and expected behavior, even when it's inconvenient. Tipping service people in the US is expected behavior. In a restaraunt, you can add the tip to the bill and pay with a credit card, but tipping hotel bell service / coatcheck / housekeeping / valet / etc. is done in cash. You might not like it, or agree with it, but that's the way it is.
You are unwilling, not unable, to pay a $2.50 ATM fee (or to deal with the "hassle" of paying someone in cash) to someone who is likely earning $2.50 an hour, and largely dependent on tips to survive.
(BTW, I hate the tipping culture in the US as well. I think all people should be paid a living wage. But I don't believe punishing the people who are already struggling is the proper way to make a point.)