NAT May be needed, yes, but not necessarily just for DNS.
If your guest users will only have access to public DNS servers, like 8.8.8.8, then the DNS name of the captive portal needs to be public. So if your public domain is corp.com, you’ll want a DNS entry for guest.corp.com so that guests can resolve that anywhere. That DNS record may point to a NAT’ed IP address, which is fine. Having the DNS record public ensures that your guests can resolve it without having to use your internal DNS servers to do so.