I've migrated a couple dozen sites to DreamPress, and my workflow was to build the site on a sub-domain (I own staging.pw and use sub-domains for each project). Then when I am finished I would create a new DreamPress instance with the domain, and ensure it was resolving correctly (I host my DNS elsewhere, so it is a thing I have to check).
You can have a new DreamPress instance copy over an existing site, either from shared hosting or DreamPress itself. I build on DreamPress so I know my sites will operate correctly, they are handle a lot of data.
I always make sure to use WP-CLI and
--dry-run first!) to ensure the database changes all instances of the URLs in the database.
And finally, you can change the domain for an existing DreamPress instance. On a given instance go to the manage page in the DH panel and choose domain, where you can choose a domain to replace the current one:
This is handy, since you can make sure your domain is resolving correctly and added to DH's web server, and even get the Let's Encrypt cert in place, before making your site go live.