Vereinfachte Darstellung:
uBlock z.B. zielt direkt auf Pfade/Namen, da wird nicht intelligent nach irgendwelche Skriptmethoden gesucht.
Das heißt dann aber auch, dass es vorkommen kann, dass eine Blockierung nicht mehr funktioniert, weil sich einfach Namen geändert haben.
Außerdem arbeiten wir hier mit Blacklists (= alles durchlassen bis auf explizit Verbotenes) statt mit Whitelists (= alles blocken bis auf explizit Erlaubtes). Whitelists würden zu oft etwas kaputt machen bzw. fordern den Nutzer mehr, sodass man in der Standardeinstellung lieber in Kauf nimmt, dass mal was durchkommt. Ich persönlich verwende uBO eher im "hard mode", also erst mal fast alles verboten. Das erfodert aber auch häufiges Eingreifen, Komforteinbußen und etwas Erfahrung.
Dazu kommt jetzt noch, dass diese Skripte extra zu dem Zweck geschrieben wurden, Adblocker zu umgehen. Das heißt sie prüfen z.B. ob etwas von einer bestimmten Werbequelle durchkommt und falls nicht, wird zufallsmäßig von einer anderen Quelle ausgeliefert oder ein anderes Skript gestartet. Blockiert man das Skript aber komplett (das wäre eher der NoScript-Ansatz), wird der Seiteninhalt gar nicht erst ausgeliefert oder nicht korrekt dargestellt.
Das ist jetzt natürlich keine akkurate Erklärung, aber ich denke, man kann sich so einigermaßen ein Bild machen. Es ist also ein ähnliches Hin-und-her wie bei Viren und Antivirenprogrammen (die ja trotz heuristischer Suche meist auch nur schon Bekanntes zuverlässig erkennen).