This is an old post, but I was looking for a solution to my issue.
I also have mine setup this way, which was recommended on another thread, but I can still bypass the Pihole by changing the DNS server on each device.
Is there another setting I need to change to prevent this or will this have to be done via scripts?
Have you enabled DNF Filter/DNS Director and configured it for Pi-Hole? Per
a post elsewhere...
In the LAN > DNSFilter section:
Set "Enable DNS-based Filtering" to On.
Set "Global Filter Mode" to Router.
Leave "Custom (user-defined) DNS 1" (and DNS 2/DNS 3) fields blank.
Input or select the Pi-Hole device MAC address in the "Client MAC address" and select "No Filtering" as the Filter Mode.
Then click the Plus icon to add the entry.
Click Apply when finished.
One may need to reboot all LAN/WiFi devices so they pull the updated DHCP information.
Or see this the image below:
Generally by using DNS Filter/DNS Director one is supposed to be able to block network clients from bypassing the LAN DNS servers. There may be exceptions to this including specific router settings or using VPN.
Edit to add: One thing people forget when using Pi-Hole and Asus-Merlin firmware is to set "Advertise router's IP in addition to user-specified DNS" to
No in the LAN > DHCP Server > DNS and WINS Server Setting section in addition to putting the Pi-Hole IP address in the LAN DHCP DNS field(s). Failure to change that setting potentially allows LAN clients to bypass the Pi-Hole.