They don't release the source code because they would lose the competitive
advantage because an employee of the company they service could easily get
the source code and attempt to run and manage it themselves wtihout
Canonical's help. Canonical makes its money off of selling service packages
and not the actual OS as we all know.
That is why some say that you cannot realistically make money developing GPL
licensed code. Why would you pay for something when you can get the exact
same source code for free? Yes, I am aware that some people make money from
custom software and donations, but a company that makes money from developing
software will more often than not keep the code locked down.
Its cute to make little to no money when you are living at home or a student
at a university developing code. Its when the costs of living and raising a
family kick in and priorities change quickly. That is of course if you want
to make a living being a software developer for which RMS has said that it is
unethical and we are all better suited being factory workers in his non
capitalistic viewpoints. That statement was taken from his Linux Action Show
interview.