My theory of why Ganon > Bowser is pretty simple. Bowser gets punished way way wayyyy harder for basically anything.
He can't land at all. None of his aerials are sub 24 landing lag (24f being his NAIR which isn't great to land with to begin with) while everything else is REALLY laggy and can't get anyone off him. Contrast to Ganon whose laggiest aerial is like 28 frames on Dair (Ganon has 16f on his Nair which is pretty good.) Both get combo'd hard but I think Bowser has a way harder time touching the ground and getting in position again (only exaggerated by his giant hitbox). When you trade this for kill power that is sometimes better but usually around the same level as Ganon I just find Bowser to be conceivably worse than him as a character as a whole.
I would like someone to contest this though, it'd at least be interesting discussion.
What
Bowser is way, waaayyy better at landing than Ganondorf. The lack of high level Bowsers really tells, because it appears no one really understands this character outside of his mains.
Bowser's landing options got significantly buffed from Brawl. Apart from just double-jump mix-ups, he has klaw, fair which is marginally faster than Ganondorf's bair, dair, and even bowser bomb and firebreath.
They all sound gimmicky and scrubby, but the reality is most of them are genuinely threatening if he gets the read so you actually have to respect them. People who don't main or play against Bowsers seriously underrate how good Bowser's dair is in this game. It's fast, beats pretty much everything, has a huge landing hitbox and kills pretty early for how fast it is. It's obviously punishable but it covers a lot of aerial and grounded options. Once Bowser gets to percents where he can DI away and act before getting hit again almost no option underneath him, aerial or grounded is safe. You basically have to approach him side-on.
Like I said before his fair comes out quicker than Ganondorf's bair.
Klaw is gimmicky but can work if you predict that they'll just try shield-push your landing. You can fast-fall it from a higher height so they have less reaction time/are less likely to expect it.
Firebreath is super risky, but you can sometimes b-reverse it if you know they're just gonna stay on the ground and try punish your landing, especially if they;re likely to sit in shield.
Landing with bowser bomb is another risky gimmick that you probably shouldn't do, but the stall lets you punish pivot-grab attempts.
His landing options suck, but they are definitely better than Ganondorf's. It's quite realistic to kill a high level player off a landing read because of how much kill power dair and klaw have. And unlike Ganondorf, his entire landing meta isn't countered by just sitting in shield and punishing whatever he tries. If someone is chasing Ganondorf in the air when they don't have a guaranteed follow-up, it's not because they need to, it's just because they got greedy and wanted a higher reward than whatever they could do punishing his landing.
Also unless Ganondorf has a guaranteed fsmash out of sideb or something I don't know about, Bowser kills much earlier than him (reliably). Bowser Bomb kills most of the cast pre-100. The pop-up is like sub frame 10, combos into the bomb and can confirm out of jab. You don't even need to jab most of the time, the start-up is so good, you can often get it off a read or OOS (especially a powershield). It can also be pivoted, and is deceptively good when you do it from the ground onto a platform (like on BF) because they have less time to react and it one-shots shields. He also has usmash, which isn't free or anything but you can normally throw it out fairly safely when they're in the air. It beats pretty much everything if you space it correctly so it's worth going for the mix-up when they're in kill percents. He has other stuff too like off-stage fair/bair but Ganondorf has off-stage stuff too.
But yeah, Bowser can consistently kill people pre-100 without stuff like fsmash, so he definitely has a better time killing reliably than Gdorf.