Why does rsync have to be installed on both sides to work?

Solution 1:

rsync works by doing quick calculations at both ends looking at the timestamps and existence of all the found files in a particular location. Once it does this, it communicates back to the origin rsync about the found list and the origin can then use that information to decide what files it needs to send. That way only the recently modified or new files get transmitted to the other side. The rsync binary on the remote side is responsible for getting the list together of what already exists and then receiving each of the files that need to be transmitted and putting them in place.

You should note that rsync works over more than just SSH. SSH is the default, but other forms of remote login (like insecure rlogin) will work as well.