Citing the Philosophy of the GNU project:
Free "software" does not mean "noncommercial". A free program must be available for commercial use, commercial development, and commercial distribution. Commercial development of free software is no longer unusual; such free commercial software is very important. You may have paid money to get copies of free software, or you may have obtained copies at no charge. But regardless of how you got your copies, you always have the freedom to copy and change the software, even to sell copies.
Free software does not mean non-commercial software. So a software that can be shared for free can also be sold.
Why isn't this definition contradictory?
If I wanted, person A could take an open source project and sell it to some dummy person B that knows nothing about free-software. It seems that the definition above favors person A and somehow tricks person B, which unfortunately does not have the time to learn everything about free-software.