The answer is all those categories offer numerous brand choices.
If you don't like Heinz, you can buy Branston, if you don't like Hovis, you can buy Warburtons, if you don't like Puma, you can buy Adidas. You can see where I'm coming from.
Every single retail category has more than one brand on offer. Whilst there may be a dominant player, the customer always has a choice if they don't like what they see. That choice means every brand must be on top of its game.
Every brand must strive to offer the best product, best communication, and best customer experience they possibly can. In the dog-eat-dog world of retail, those with customers need to keep them, and those without need to acquire them.
It takes considerable time, effort, and money to keep existing customers, as it does to gain new ones.
Compare this to the world of public transport, where most bus and train routes in the UK are non-competitive. The brand-on-brand bun fight that is the driver of standards and innovation in every other retail sector simply doesn't exist.
If person A decides to make their trip by public transport, that's usually where their choice ends. The timetable dictates what time the trip happens, and the operator monopoly determines who takes them. For the majority of people, public transport is the polar opposite of the retail market they are so used to.
If they don't like what's being sold, they have little alternative.
The only true retail element of public transport is choosing whether or not to travel in the first place.