It depends on which control panel you are using. The average host will do it and for free because they are hungry for new customers. But if your old and new host is using the same Control Panel like cPanel, then most of the hosts will do it for free. Also, if your Old and new host both have softaculous, then you can just export the backup and restore it in the new host's softaculous. Lots of WordPress plugins can help you migrate the site like Updraft.
It really depends on your setup. If your websites are stored on cPanel, it is fairly easy to make a cPanel backup and then restore it at your new host. Just click "Backup" within your cPanel. Most reputable hosts either have a free migration tool for you to use, or you can contact them to restore a backup for you.
Also, you can easily click the "Backup" button to generate a cPanel backup and then use that same function to restore the backup at your new host.
If you don't have cPanel or would prefer to do all of this in Wordpress, there's a really good plugin called All In One Wordpress Migration that will generate a backup of your entire WordPress, and give you a file to download. You can then just load up a fresh install of WordPress at your new host and use the same plugin to upload/import the backup within WordPress.
But many hosts will do all of this automatically for you!
Are you planning to move your WordPress site to a new hosting company or a different server? The biggest risk when switching web hosting or migrating a website to a new server is data loss and downtime.
Both of these can make your website temporarily inaccessible to users and search engines which can result in loss of sales and search engine rankings.