The answer is (as so often) here too “It depends”
Here are some examples of solutions you can choose based on your needs. (Of course, there are many other solutions “out there” but the tools are usually the same.)
If all users are able to establish new teams then you must get a provisioning solution in place before the roll-out, otherwise I can guarantee that you will get a chaos and lose control in very short time.
In the post “How to provision team with Flow?” Timo Pertilä shows a solution for Teams provisioning using PowerApps, SharePoint, Microsoft Flow and Microsoft Graph
In the post “Create a new Team from Microsoft Flow” Steven Collier shows a solution for Teams provisioning using Azure Automation, PowerShell and Microsoft Flow.
In the post “Provisioning Teams with a Site Design, Flow and Microsoft Graph” Laura Kokkarinen shows a solution for Teams provisioning using Site Design, Microsoft Flow and Microsoft Graph.
The blog post “AUTO-PROVISIONING SHAREPOINT SITES AND TEAMS: A BLOG POST LIST” by Joanne Klein has also a useful list of solutions.
In the post “Automate Teams for Education with School Data Sync” Magnus Sandtorv shows how to use School Data Sync in order to automate Teams for Education.
Managed by “The chosen few”
In Microsoft Docs we can read the article “Manage who can create Office 365 Groups” to find out how to control who has the ability to create groups (and thus Microsoft Teams).