We'll finally get to find out which of these:
- Artificial intelligence
- Military intelligence
... is the biggest oxymoron.
Nog went up the ranks more quickly because of the war, which provided him with many opportunities. Also, his connections, which allowed him to intern on DS9 and the Defiant, again in the context of war.
Harry was on a ship isolated from Starfleet. If Janeway had promoted everyone who had the merit, she'd have had a ship full of commanders and a handful of captains by the time they got home. But most of those people would have had to keep doing the same jobs, anyway.
But the true reason for the discrepancy noted by OP is just down to the fact that Voyager's writing team just wasn't as good as DS9's (or they were held back from above). The only characters to have a meaningful arc on Voyager were the Doctor, and Seven. The others mostly just had to reset at the end of every episode to preserve the show's episodic nature.
Harry never got promoted because the writers never figured out how to evolve his function on the show. Now, I assign a small part of the blame to Garrett Wang himself: he rarely gave performances that stood out and made the writers want to write about him more. But most of the blame goes to the writers and show-runners.
For example, if they'd exploited dual crews more throughout the series, with more conflict, etc., Harry might have found a place. Imagine if the Maquis crew had had their own ship for a big part of the series? Harry, eventually frustrated at being passed over for promotion, might have joined them!
Here's how I understand it: at the time, he thought the penalty was for braking under the safety car, which he thought was bullshit considering how many times Max slowed down just before restarting a race, in the past. He didn't hear that the penalty was for "erratic driving".
So, thinking the penalty was bullshit, and that the team were challenging it, he figured he was owed the lead once it would be overturned.
That's how I figure his reasoning, anyway.
Reminds me of how I warm up premade naan bread from the supermarket: I quickly run it under tap water (like, a second, maybe two if I'm taking it straight out of the freezer) before placing into a pre-heated oven that I immediately switch to broil. The water gets absorbed, making the inside soft and moist even as the outside crisps up.
Canada here. Please, Europe, make it a condition for any future trade deals between us that we have to ban the Cybertruck here as well. I've already seen too many of them on the roads here for comfort...