Depends on how you want to find these... PowerShell, admin pages, etc.
I'll look around to see if there is a single simple solution. In the mean time are some options:
One is to use the Office Audit Logs: https://protection.office.com/unifiedauditlog and do searches for "Created Site", "Created Team" etc. The data may not go back as far as you need.
Another is to use the SPO PowerShell cmdlets. https://support.office.com/en-us/article/Introduction-to-the-SharePoint-Online-Management-Shell-C16941C3-19B4-4710-8056-34C034493429
Connect-SPOService -Url https://yourDomain-admin.sharepoint.com
Get-SPOSite | select url, template, owner
Sites listed without (Site Collection) owners are most likely Office 365 Group sites, which include Team created sites. The template will give you a hint as to the purpose of the site. (Team sites use the "Group#0" template.) The "owner" is the Site Collection Admin, which be default is the person who created the site collection, but can be changed after the site is created.
To get just the team sites:
Get-SPOSite -Template GROUP#0 | select url, template, owner
You can also inspect the list of Active Directory Groups. Those that have (group) "Owners" and/or (group) "Members" are either Modern Sites created by users or Modern Sites created to back up Teams, Planner, etc.
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
Get-Group | select displayname, grouptype, managedby, owners, members