It's part of the open-source philosophy of "if you want something done, grab a shovel." Naturally, it reduces the workload on developers if the users simply compile the program themselves. No need to worry about all those architectures, OS's, etc...
But, if you're making a consumer-level product (Firefox, Paint.NET, Audacity, Keepass, etc) and you care about acquiring users, you should always, always, always! include binaries. Probably only 2% of people who stumble on your website, and are interested in your product, are going to:
- Download the appropriate SCM client
- Check out a whole copy of the source tree
- Download the IDE or compiler tools needed (easily several hundred MB for some projects)
- Download and install all of the dependencies needed (and set environmental variables)
- Run a fresh compile (easily a 10 minute process on some projects)
- Deal with any errors or problems or arise (which in small projects probably aren't documented -- "oh yeah, the latest is actually in branch-rewrite, not trunk!")
- Uninstall everything, or leave it all on your computer and re-compile for updates.
(Obviously on linux things are much saner, but most consumers still use Windows.)
It's far easier for newcomers to say "ooh, Windows version! Download. Run".
However, many open source projects are not consumer-level; they target programmers, who have a much higher tolerance for this sort of ordeal, and so binaries are DIY. In my experience, programmers can be just as lazy as users, though, so be warned. :)