Browser makers are emphatic that game-like content should be v-synced (i.e. scheduled with requestAnimationFrame). They are clear that normal JavaScript timers are not suitable for scheduling rendering and preferably shouldn't be used for that. So on this basis alone I think using JavaScript timers counts as hacky.
It looks like Chrome 107 just shipped 8ms aligned timers, which could have broken existing uses of fixed FPS. It would be interesting to know if Gdevelop/Phaser still work with that implemented.
Further if you can only rely on JS timers running every 8ms, then you can only achieve a regular 62.5 FPS, which doesn't match common display refresh rates. So I'm not sure how this could be implemented without causing some degree of jank. And then browser makers may well further tighten timer restrictions in future breaking any content trying to use timers for rendering, which they are reserving the right to by saying rendering content shouldn't be done on timers. So it seems like maintenance could be difficult too.
I don't think a fixed framerate is a magic bullet that will solve everyone's cases, although it might throw in an extra tool to the toolbox if you want to make a tradeoff like accepting janky display for a more predictable physics simulation. But even a fixed FPS isn't guaranteed - if the system can't keep up with the performance, then the FPS will drop anyway. So I still generally think the best approach is to put effort in to figuring out any problems that happen with v-sync and trying to fix it so v-sync works in more cases.