This really, really depends on your team. You haven't told your team, neither its style.
From this question, I'm thinking that your team is entirely Hyper Offense. As such, Ho-Oh is better on this team, since Lugia requires a lot of support, and loses its capability in Offensive teams lacking good support.
Lugia is very passive and so fits mainly on fatter balance teams and stall teams. Dragon Tail Zygarde-C can heavily take advantage of non-Substitute Lugia, as it is faster than Lugia. Yveltal also massively threatens Lugia and can only be statused in return. Tyranitar also provides Pursuit support in order to combat Mega Gengar and Lunala, which dispose of non-Psychic sets, but Tyranitar must be used carefully, as its ability can break Multiscale. Additionally, Lugia cannot handle being statused and so is forced out by bulky status users such as Ho-Oh, Eternatus and Necrozma-DM, making status absorbers such as Necrozma-DM and Ho-Oh and Rest users such as Zygarde-C, Giratina, and Primal Groudon are good partners. Clerics such as Chansey, Diancie, and Xerneas significantly assist Lugia in this regard as well, in the case it does get statused. Stealth Rock is useful in order to rack up chip damage with Whirlwind; often a key way for stall teams to damage the opposing team's wallbreakers; and so the aforementioned Necrozma-DM, Primal Groudon, and support Arceus forms pair well with it as well as Spikes Ferrothorn. Gothitelle is a major vulnerability for Lugia and the stall style builds it features on, and it is not possible to patch up this weakness.
^This also explains why Lugia can't do almost nothing to its check, compared to Ho-Oh. Lugia really requires a lot of support, like Chansey to protect from status or status absorbers, which make it limited to stall highly.
Lugia's ability, Multiscale, is insanely good. Regenerator is nice, but can't compare to the awesome ability that is Multiscale.
Awesome? Is this awesome limited to stalling opponents with Roost and status? Stalling opponent means the play style should be stall, which the OP doesn't uses. Regenerator makes Ho-Oh very long-living all through the game, meaning it is especially useful.
Ho-Oh has a 4x weakness to Rock, and Primal-Groudon carries Stone Edge 22.288% of the time. Zacian, the second most used Pokemon behind Primal-Groudon, also has Wild Charge 49.561% of the time.
I don't disagree with you in any way, but are you ignoring the fact that Yveltal is the most used Pokemon? And Lugia can only survive only survive a Max Darkness if its Multiscale isn't broken, and in return Lugia can only give a paralysis which is more unhelpful. Lugia doesn't do much to Zacian either. If they use Substitute, surely you can Whirlwind, but you are really hurt. I will have some quotes from good AG players:
Geysers: AGCL3 Swastik definitely regenerator. Lugia isn't even a support mon btw. it's a wall. if you're running defog on lugia you're doing something wrong. ho-oh is a perfect support pivot. but lugia just isn't a support mon lol
That's why Substitute Lugia is run in stall teams over Defog. And trust Geysers is a totally good player.
Theotherguytm: Ho-Oh is a non-rock move Pdon check and also blanket checks every special attacker in the tier with Regen, as well as excelling at stalling Dynamax. It also helps pivot around Zac-C, punishing it if it chooses to drop Wild Charge. Finally, it excels as a Defogger, probably being the most reliable one in the game. Ho-Oh is very hard to not use on a balance team for these reasons.
Lugia is just a wall, and not a great one at that (loses to Zac-C, Cal-S and YGod). Its usage is mostly relegated to stall teams because it sucks momentum away like nothing else.
Meanwhile, Lugia is over here tanking hits like a boss.
Lugia is only good for stall and tanking hits. Ho-Oh gives support like a boss while tanking special hits like a boss.
Hope this helps.