When I visited Japan last October, I am actually quite surprise that we can eat on the train. It's not just finger food like potato chips but also bento set! They got this table on the seat where you can pull out and have your quick meal on the train. Even though we can eat on the train, you will never spot a single piece of rubbish on the cabin. Very clean I must say.
I think the Japanese are very self-disciplined. Walking on the streets, it's hard to find a rubbish bin. Yet again, there's no litter on the streets. In Japan, they also have the keep left policy when using the escalator. You wouldn't find anyone blocking on the right lane unlike Singapore where you might encounter inconsiderate people standing on the right lane blocking your way when you are in a rush.
Back to the topic why you can eat on public transport like MRT? Reason is simple: People have no self-discipline. I don't pin-point on Singaporeans alone in this case. Foreigners are also contributing to this.
See below!
SMRT bans people from eating and drinking on the train but I still see litter! A empty bubble tea cup. With bans, there are litters. Without bans, so?