The managed nodes do indeed need Python, though the requirements tend to be lower.
The bulk of the modules essentially generate Python payloads for Ansible to ship/run/track. Most of the burden is on the controller. Not all.
The execution environment information I linked [in another comment] covers what this user points out