You send a message directly to one person. The conversation that you started remains between the two of you, and you can't add other people to the conversation later.
Spaces work well for a group of people working on a specific topic. You come together to handle this thing (which can be something quick or long term), but the focus is more narrow and specific. You could also hear these referred to as standalone spaces.
You can join a space when someone who's already in the space adds you to it.
Spaces start out unmoderated, which means anyone can do things like add or remove people, or change the name and picture. But if you need more control over who's joining, you can make yourself a moderator of a space. Then, only you can add people to the space, and you get other privileges like being able to delete people's messages or files.
Teams help you keep everything organized by putting multiple spaces under a common theme. Teams are great for a consistent group of people who are going to be working on something for a long time. That something can involve many activities, or could be subprojects happening at the same time.
To join a team, a moderator must add you to it.
Every team has at least one team space, General. You're automatically added to the General space when you're added to the team. As a team member, you can view and join the team spaces within the team. You can also create team spaces for others to join. The General space is unique because it's the only moderated space in a team.