I have a (not directly) related hypothesis I heard stated once about vouchers and bonus programs once.
If the operator takes your $20 to buy a metro card, they made $20 of income. The $20 of "value" the card now holds is accounted for.
Assuming a metro card never expires would means that the operator would have to account for this value to be in existence for perpetuity.
If 1% of metro cards never expired but still had 20$ on them, there would be an ever-growing amount of money-to-be-accounted-for which (I've been told) is a bit of a nightmare since it's technically a liquidity, but obviously unavailable to the company.
It's obviously shitty for the customer, but there's seemingly some sort of (tax/business) logic behind it.