Yes, currently (and I don't know if that's going to change) Let's Encrypt or certbot can't "mix" challenges. So if you need the dns-01 challenge for a wildcard certificate, then all hostnames must be validated by the dns-01 challenges. And for every hostname a separate TXT record is required.
The wildcard certificate is beneficial for the management of multiple domains in your webserver. With a wildcard certificate, you can make use of thousands of different labels without the need of getting a new certificate for every new hostname.
So if you have a certificate with *.example.com for just www.example.com, but you need a new website foo.example.com and perhaps later also bar.example.com, you can just use that single wildcard certificate for all those hostnames. Note: the wildcard hostname *.example.com would not cover foo.temp.example.com, as the wildcard is only valid for a single DNS label. You'd need the wildcard hostname *.temp.example.com for hostnames like foo.temp.example.com and bar.temp.example.com. Note 2: the wildcard hostname is also not valid for the "base" hostname example.com, so like you did correctly, you'd need to add *.example.com and example.com to the same certificate, requiring two TXT records indeed.