I use AdGuard and unbound. AdGuard is like pi-hole, the best ad filtering DNS software and it queries a local Unbound DNS server which is a fully recursive DNSSEC-enabled DNS server. They both just run in a small docker container on my Mikrotik router.
What does fully recursive DNS mean? unbound isn't a service provided by Google/Cloudflare or Quad9, it does their job for you instead. It finds the authoritative DNS from the root DNS servers, so it gets the DNS record directly from the person who owns the domain, rather than a middle man. So it has to do more work, but you can be sure (because of DNSSEC, a bit like SSL for DNS that authenticates - not encrypts) that the IP it resolves is authentic. pfSense and OPNsense have unbound built-in as their default DNS servers too.
Why do I use it? Speed and Control. While snoopers could monitor my udp/53 traffic, DNSSEC will simply disallow any tampered DNS, and only I get to filter what I don't want (eg ads). It even blocks ads in apps on my phone. If, as a parent for example, you want other blocklists and filters, AdGuard and pi-hole both have full support of these. If you're paranoid, unbound can also support DNS-over-HTTPS and DNS-over-TLS for full encryption, but I don't as by design they are at least twice as slow, and DNS should as fast as possible.
How fast? It's a little slower at the beginning as it has to do considerably more work to find all the authoritative DNS servers to query, but once the cache has filled up, it's faster than anything Google/Cloudflare/Quad9 can provide simply due to proximity by being on your LAN. Even though Google's 8.8.8.8 resolves at 1.8ms from my ISP which is seriously (and impressively) fast, unbound resolves at <0.1ms because it's on my LAN.
The downside is you need a device to run it on and you have to configure it. Like I said, I run it in a container in a Mikrotik router, but how you run it is up to you. A Raspberry Pi, a NAS or a little PC running Linux will all be more than capable.
Here's an article how to set up if you're interested:
https://medium.com/@life-is-short-so-enjoy-it/homela...
You can use pi-hole instead of AdGuard as well. Here's how to use pi-hole with unbound:
https://docs.pi-hole.net/guides/dns/unbound/