Last taxi I had the displeasure of taking was in San Diego. The driver was African, and despite having VISA/MC logos on his windows threw a hissy fit when I pulled out my card, wanting cash. Took my card eventually and immediately lost it, claiming I hadn't given it to him. Took about 15 minutes to find him. After some drama he pulled out a phone with a Square app or something and entered my card, whining about time.
While back I had to take a taxi in NYC. The company I was interviewing with had sent me a voucher for a ride. When I called to get picked up, they claimed to not know anything about the voucher, though they eventually took it. Driver claimed to not know where the Amex tower on Wall Street was and wanted me to give him directions. Also demanded that when we went over toll bridges that I pony up exact change for tolls, which if anything should just have been added to the fare.
Took a taxi home from the airport once, the driver was a fucking maniac, like a spinosaurus was on his ass.
This is why people flock to Lyft/Uber/whatever, because the taxi monopolies don't even *try* to provide a tolerable service.
As to ethnicity and language, it's hard to complain without coming across as a douchebag yourself. They speak the language they and the other side knows, just like you do. Not knowing where they're going, dirty cars, service quality, those are all legitimate complaints, but keep ethnicity out of it. I'm skeptical that a caucasian driver would do any better.