I don't know many Americans who do carry cash. Most tip on the credit cards.
But it gets messy and I think sometimes workers might get offended because they are expecting a certain amount for a tip and don't always get it. For example, there are a lot of times a big group of friends will go to dinner and at the end, everyone will put their credit card on the bill and tell the server "split it 7 ways" but then some leave tips, other's don't, some don't want to tip more than 10%, some feel differently and tip more. That's why a lot of restaurants have the policy that all groups of more than X amount of people get a mandatory 18% gratuity/tip added to their bills. Then, some people don't read the fine print and see that so then they tip on top of the 18% that's already on the bill.
And then there are times when you go to a place where they advertise that the service will be Y amount of dollars, but you get your bill and it's higher. But you don't have time to talk to the server about why they charged you for X when they advertised that it would be free, because you're in a hurry to leave to go to your movie, so you leave a smaller tip because you hadn't budgetted to pay more for the service/meal.
For example, DH and I went to a restaurant that we really like the other night. It said that kids meals are free. Usually, that means one child per adult, so if you have 2 adults and 6 kids, only 2 kid meals are free. We were 2 adults and 2 kids. After we paid and left, I asked DH why he only left about a 13% tip when the server had been so great, and he said it was because the bill had included one of the kids' meals. I asked why he didn't ask about it, but it was late at night and we wanted to get home and get the kids to bed, so he didn't feel like waiting for the server to come back and ask, etc. He did pay by credit card, so he saw the bill before he paid. I don't know why he didn't ask. But I imagine this type of misunderstanding/mistake happens fairly often and then the server gets confused as to why they didn't get a higher tip. I wouldn't have handled it like my DH did, but that wasn't my decision since he paid.