Docker swarm mode managers are implicitly nodes in their functionality. Each node in a swarm must have a role of manager or worker. However, if you do not include a constraint that a workload must run on worker nodes, then it can and will run on swarm mode manager nodes.
The reason to break up this functionality onto separate nodes is to improve security and performance, any access a container escape gets on a manager will have access to control the entire cluster, where a container escape on a worker would be limited to that single node. Managers also have some overhead in maintaining the current cluster state, so in large clusters you want to avoid running workloads on those managers to enable greater scalability.
However, a common small deployment is either a single node swarm cluster, which is also a manager, or a 3 node cluster for high availability with each being managers.