I disagree. I think they changed things up a bit this time with the nuke being necessary more to slow Metagross versus taking it out.
The nuke for once doesn't immediately KO Metagross and finally allows Pikachu to land a hit.
That said, I think it would've been better if Ash capitalized on this and had Pikachu land a few more hits before taking Metagross out.
Thinking about it now, the battle seems to be Steven using a combination of Strong Offense (Aggron), Defense (Cradily) & Speed (Metagross) with Ash having to overcome each trial.
I'm pretty happy that the nuke didn't KO, I think that would have been an extremely anti-climatic ending after Metagross was bossing the fight. I agree that it was necessary because Pikachu was outmatched but it's as you said, would have been nice if Pikachu was able to get a few hits in. One thing they could have done was Pikachu getting paralysis onto Metagross, either via static from the Comet punch or Thunderbolt, to slow it down. Alternatively, an Electroweb just as Metagross approaches to Comet Punch because it can't dodge when it's going in to attack. I think that would have flipped the table a bit better and then Pikachu can use it's Z-move directly on Metagross who can't move and takes the full brunt of it. This fight could have been a whole lot worse, true, but it was still mostly Pikachu getting beat up which is not something I enjoyed personally, especially when Pikachu is already established to be pretty fast.
I like your point about Offense, Defense and Speed, that's probably what Steven had in mind for team building (or should I say the writers lol). When Steven saw that Dracovish hits hard but is frail, he immediately switched to Aggron to knock it out before it can do more damage. Gengar was playing the long game with residual damage so Cradily was sent out to nullify that. I like little things like these, whether intentional or not.
The only thing that really hurts this battle is the need for drama since this is an Ash battle after all, the neutral battles like Lance vs Diantha were better because the focus was completely on the battles instead of the characters. I even liked Haxorus and Garchomp's little sparring match even though no trainer was calling a move, such things seem to make the battle more natural, even if it's contrary to the games.
Lastly, just wishful thinking but I would have loved a Sceptile vs Mega Metagross match. Two speedy pokemon fighting each other, since if any pokemon of Ash's could keep up, it's Sceptile. Would have been fitting to decide the strongest pokemon of the Hoenn region haha.