You can achieve similar results with pihole, or hosts file managers.
Back in the day I used a local proxy tool, Proximator or something.
AFAIK uBo isn't doing anything particular unique technologically (which doesn't mean I'm not grateful, nor that anyone could make it).
You can't. uBO has contextual information for each network request, something not available to external content blocking solutions.
For example, many filters are meant to apply only on specific domains or whether they are 1st- or 3rd-party, and for this to work you need to know from which origin a network request is fired.
Also, uBO has an advanced-user mode that let you create rules to override filters in static filter lists; allows to work in default-deny mode; or even allows to work with no static filter lists at all. Contextual information is key to advanced-user mode features.
www.google.com/search*tbm=nws^$document
www.google.com##g-section-with-header:has(h3:has-text(Top stories))
www.google.com##g-section-with-header:has(h3:has-text(Videos))
www.google.com##div[role="tab"]:has(a:has-text(News))
It's a great feature that would be impossible with something like pihole. `has-text` is very powerful.