Because free isn't necessarily a sustainable model given the current CA environment. Any server can generate its own certificate, but this does little to verify the identity of the server you are connecting to.
My point is that CA's provide a service that can't reliably be accomplished for free (yet - the CA model has many of its own issues). If you can find one for free, I would be lead to ask "what are their motives for providing this service to me?"
Let's put it another way, would you really trust that you're talking to https://www.amazon.com if it's trivial to get a cert for www.amazon.com[1] that's signed by a CA that the browsers include and trust[2]? How is it any different if the browser doesn't tell you the current cert is of dubious reputation?
[1]: It is, I could generate one right now using openssl.
[2]: It's not, that's why the system works.
It costs them nothing more than a few seconds of server time to produce a signed certificat for me.
If I wasn't at least a little bit clever with my spending, I would have a lot more difficulty paying my rent.
Why would I want to pay if there is alternatives offering the same product at no cost?