I've been pondering this idea, and I'm stumped. I thought a script like this would work fine:
local teams = {"Tourists", "Workers"} -- I have A LOT more teams than this, but I figured I at least want to get the concept down with two teams. I don't really want to use a table since I have about 15 - 20 teams, and putting them into here would be a lot of work.
while wait() do
for index, player in pairs(game:GetService("Players"):GetPlayers()) do
-- Code, but I'm really stumped on what to put here to check if there are no players inside of a team. Inside this code it would be like team:Destroy(), and I know I have to get the team object.
end
end

2 comments
You could loop through the players, see what team they are on, if anyone is on that team, set a variable to true, then a conditional statement to delete that team if the variable isn't true
Are you using the ROBLOX Teams service with instances of type Team for each of your teams? If so, you can use the GetPlayers() function to count how many players are in a team.