You should double check System Settings ⇾ Virtualmin Virtual Servers ⇾ Configuration: SSL settings page and Who can request Let’s Encrypt certificates option. Also check if your domain has Website feature enabled in Edit Virtual Server page.
@Jamie, should the cert_form.cgi only use the domain_has_website($d) check, excluding DNS? In cases where a domain has DNS but no active website, Let’s Encrypt can still perform validation effectively using only DNS. Isn’t a bug?