With MV2, every request must be filtered with slow, JIT, garbage-collected JavaScript code. In MV3, filtering is handled by native browser code using the list provided by extensions. UserScripts could be used to modify the DOM, but that requires power users to manually enable it.
There is a limit on how large the list can be, depending on the browser.
Apples to oranges, scripts need an entire browser/Interpeter framework underneath it to even function