DreamHost only require a paid plan because their implementation was based on before CloudFlare introduced free SSL (long before). CloudFlare’s partner program does allow hosts to integrate the free SSL into their control panel so DreamHost just need to get around to doing it.
With regards to hekmat’s suggestion, I would advise anyone who isn’t technically knowledgeable to proceed with caution. DreamHost’s shared IP’s can change at any time although it’s rare.
For the best compatibility with CloudFlare’s SSL, it’s best to enable secured hosting using a self-signed certificate (free) in your Panel and then set CloudFlare to use the “Full” SSL. If you use WordPress this will save you a lot of hassle in the long-run.