The question of running your own DNS servers or using only 3rd party DNS has a lot to do with your business type, your target customer base.
If you're aiming to have as much automated as possible, then you'll need your own DNS servers, that way a new customer can buy a hosting product through your checkout, be given NS info for external domains or have their new domain automatically set to your NS, then your billing panel will provision the hosting which will already have the DNS setup correctly for your new customer. This way the customer just buys the product and it's ready to go without them needing to do anything special.
On the other hand, if you primarily sell a high-end white glove service - or maybe you primarily do design work and hosting as an addon, so you're the one setting up the hosting and everything for the customer, then 3rd party DNS like Cloudflare can be the far superior choice. You'll get a huge boost to security, site speed, reduced server load, and faster DNS propagation times, and more. The CF sync in Enhance works great, but there's some things you have to keep in mind. Once the sync is active any changes to DNS need to be done on enhance - enhance becomes the source of original DNS config and the sync just copies it to CF. This is good because if you ever need to migrate a website to another server or do disaster recovery on an entire server then enhance will update all those sites DNS on CF for you automatically.
Forcing 3rd party DNS in a mass hosting environments where packages are cheap and everything is automated would be, not great. You can bet pretty much all customers won't have a clue about how to setup CF and get an API key and activate the sync in enhance, and yadda yadda yadda, so unless you want every new customer complaining about how to setup DNS then you'll want your own custom DNS servers running.