I feel that sometimes resolution of sub-domain.duckdns.org and host.sub-domain.duckdns.org fails with empty result or even timeout result. Tested resolution against Google and Cloudfare DNS servers.
Buying a domain. There might be some free services that, similar to DuckDNS in the beginning, work reliably for now. But IMHO they are not worth the potential headaches.
Registrars (or DNS providers if you don't use the one that comes with your registrar) worth using have an API to manage DNS entries. That's basically all there is to DynDNS.
pfSense has an updater built in so that's handled my home.mydomain.com entry for me for a long time and has handled updating duckdns too, even though it's basically only a backup at this point.
If you've got a domain, no real reason to not just handle it yourself and avoid the headaches.