WRT to distributions, the essential difference between "free" and "non-free" is that the former is compiled from freely available source code, whereas the later is not; this usually means that the distribution packagers did not compile the binary at all -- they got it from some third party who have legal, private possession of the source code. For example, proprietary video drivers are distributed in binary form by device manufacturers; the source code is not public and thus, "non-free".1
I often read that some distributions contain non-free components while some other are "free".
I know that Fedora and Debian make it a policy not to include any non-free parts in their base distribution and default repositories, but they do have "non-free" repos that you can access. The only distro I know of that makes it a policy to have only free parts, period, is gNewSense [there are more -- see bodhi.zazen's comment].
Sometimes people will refer to the fact that virtually all commercially available computers run proprietary firmware (there are a very few exceptions) as evidence of the fact that virtually all computer systems are non-free on some level, but OS distributions are not really responsible for this -- in theory, they could perhaps develop free firmware and flash your equipment with that during installation, but virtually all people would not want this because of the risks involved (it could wreck hardware).
The reason for preferring free software is quality control; if the only people who can examine the source code are the people who wrote the source code, we have to take their word for it that it is done properly and does not include security loopholes, malicious components, or potentially dangerous errors. The reason for preferring non-free software is it's easier to monetize. In cases where no money is involved (such as with "non-free" linux repos) it is usually because hardware manufacturers claim to be protecting trade secrets in their drivers. In fact, it's probably not much protection in this context, and it could be argued that the real reason is a matter of (normative, old school corporate/capitalist) culture. That culture regards software as something that must be controlled, and freeing the source code problematizes control.
1 There's actually a little more to the concept of free software than just that the source code is open (publicly available). It must also be licensed such that it is freely modifiable, although such modified versions must also remain free.