I think it's fair to call that a dark pattern, especially for a public service, it is simply a hidden tax for tourists.
Thats the ground state of this system as they have designed it.
As I mentioned, excluding the bonus, and prior to the dollar surchage, that wasn't really true. The values were perfectly divisible by $2.5.
But if you look at the author's own images, the "Other Amounts" button is pretty prominent. Short of a brand new auto-rebalancer option, what would you suggest? If my claim is true, and that they wanted to have the cheapest transition / software update they could manage, that option would violate that. They essentially changed a table of numbers (I assume) and most of their old UI was reusable.
The next cheapest option that would satisfy your requirement is to blow out all 3 quick options (and eliminate the bonus) and have only an "Other Amounts" path, essentially forcing manual re-balance.
Here's a much better way of "outsmarting" it: buy an MTA EasyPay Xpress card[1]. The card will be linked to your credit card, so you will never have to worry with insufficient fare again.
Plus you still get 5% every $5, with the convenience of auto-refill, and full protection if you ever misplace your card.
Way better than spending time counting pennies.
First off, the bonus. For my purposes, I will call it "free", but as one response was so happy to point out, nothing is truly free, but I won't debate whether something should be provided at-cost or not here. However you feel, $2.5 is the price for one ride, and anything below that from the perspective of the buyer is essentially gratis. Assuming the bonuses were not there, for all three default payment paths, you would have $1.5 remaining. And hey, the lowest amount you can refill with happens to be a dollar! $1.5 + $1 = $2.5 = one perfectly balanced card.
Now for the price change. Cards were free, so essentially you really were paying for a balanced amount that would leave you with no remainder. Again, ignoring the bonus, you were essentially putting $10, $20, and $40 on your card - all values perfectly divisible by $2.50. Now cards cost a dollar. That's a different debate, but that explains the $1.5 pre-bonus dangler.
He goes on to mention, "If they really wanted to fix the issue, they could ask “How much do you want on your MetroCard” instead of “How much do you want to pay”. But don’t count on those changes coming to a MetroCard Vending Machine near you anytime soon, given how lucrative the current set up is."
But prior to the one dollar surcharge, that is essentially what it was doing. It's been updated to reflect the dollar surcharge, and it has always elected not to show the final amount + bonus. Including the bonus would be just confusing, especially if you were trying to pay with cash/coins. "Oh hey, I want $10 to be on my card, including the bonus." "Okay, please enter $9.524" Yes, that's right, it's not an even $9.5. 10 / 1.05 = 9.5238~
If there's any "answer" here, it's that they wanted the cheapest/smallest amount of software updates that they could get away with using their original software/ui.