The problem is that so much critical infrastructure around the world relies on ancient Windows software. I’m pretty sure their backwards compatibility is one of the reasons there’s so much inconsistency in Windows, and every iteration seems to just add more bloat on top.
uBlock has direct access to the DOM and so can modify what the browser renders. For example, YouTube ads are hosted on the same domains as their videos and so PiHole cannot block them, but uBlock can.