Taxi drivers are usually self-employed (they pay a rental fee for access to the hire company network) hence card meaning less opportunities for tax/fees-dodging etc.
Buses/trains are ran by bigger companies and the drivers are salaried so they don't care about taking card since the bigger company will be dealing with the accounting.