Why hasn't rsync caught on in the Windows world?
I'm suprised no-one has mentioned DeltaCopy, which is rsync packaged in a windows GUI. It can even install itself as an rsyncd-compatible service.
I would say mostly because people in windows are unaware of it. Rsync is a command-line utility that is consistent with the unix philosophy of having lots of small tools preinstalled. The windows philosophy is based around GUI applications that are all downloaded and installed separately. There is not a smooth integration spot where rsync would be obvious or make much sense, and running commands on a windows system is tedious at best.
Also, rsync really shines when its part of a larger application (say for consolidating and parsing logs), or as an automated archival system (implemented easily with a cronjob). Windows simply doesnt have the other tools in its ecosystem to make using rsync actually viable.
Finally, I would say that rsync is just too freaking complicated. Anyone I know who uses it regularly has a pre-set group of flags (mine is -avuz) that generally does what they want, but the man pages / documentation lists dozens of command-line switches, some of them amalgamations of other switches. For example (from the [man page]):
-a, --archive: archive mode; equals -rlptgoD (no -H,-A,-X)
It is a quick way of saying you want recursion and want to preserve almost everything (with -H being a notable omission). The only exception to the above equivalence is when --files-from is specified, in which case -r is not implied.
Windows users generally expect, well, windows, and menus, and to have a single app be an all-in-one solution, not just an independent piece of a tool chain.
In my opinion, because there is no decent GUI.
Another argument may be that there is robocopy. Robocopy is missing many cool features that rsync offers, but in most situations robocopy is just sufficient for the job at hand.
I use the Cygwin rsync extensively and it works very well.
It is a bugger to install and configure. You have to do a full Cygwin install just to get one binary and three dlls, and it isn't obvious which three dlls are needed. How to run it as a service is not obvious and the command line syntax is complex. Non-nerds are like to give up very quickly.
Also it messes up permissions to the point where I always set cygwin=nontsec, and it regularly hangs. I understand the hang is a known problem with the Cygwin dll rather than rsync itself (which is not a criticism of the Cygwin guys. What they've achieved is little short of miraculous!).
Rsync is extremely useful if you do any sort of replication over WAN links, and it's on my todo list to write a native Win32 version. Sadly it's been on my todo list for several years and is no closer to the top. I don't think just writing a GUI wrapper is a big step forward as fails to address some of the fundamental problems with the Cygwin version.
If anyone is interested, http://www.ratsauce.co.uk/notablog/UsingRsync.asp describes the results of my many hours of pain getting Cygwin rsync to work on Windows.
I would say that for smaller computer to computer syncs, people are using Robocopy, SyncToy, or Foldershare (now Live Sync). For the large enterprise distributed multimaster file share scenarios, they are using Distributed File System (DFS). Those tools handle most sync scenarios just fine, leaving very little benefit to installing, learning, and using a recompiled *nix app on Windows.