For me it seems that the reasons are two:
- the belief that code is only a tool, a particular implementation being secondary to the idea or algorithm,
- the historical residue (it was unpractical to print a lot of pages; especially as no-one could copy-paste it).
Additionally:
- many scientist seems to be afraid to show their code in public, as they are aware of its poor quality (see also Why do many talented scientists write horrible software?Why do many talented scientists write horrible software?), so they don't want to risk reputation (for both quality and catching possible errors).
Moreover, things related to current incentives in academia (where publications, not code, are related to one's career possibilities):
- sharing code may mean risk of being scooped (instead of milking the same code for years),
- cleaning up code takes time, which can be used for writing another publications.
Do people have to submit their code privately to the reviewers at least, so that they can reproduce the experiment if possible.
Typically - not. If the code is not made public, almost for sure no reviewer have checked its existence; much less - correctness.
However, many scientists are starting to notice the problem (and they see how open source culture flourishes). So, there are new initiatives addressing such issue, like Science Code Manifesto:
Software is a cornerstone of science. Without software, twenty-first century science would be impossible. Without better software, science cannot progress.
Or e.g. this manifesto. Try to search for reproducible research or look at things such as knitr for R and this intro to IPython Notebook, or read about using GitHub for science. And it seems it is taking off.