Because the format of the contained code can change with each (major) Python release, while source code at least can be compatible. The format can also differ between implementations (of which there are several, the two most well-known are CPython and PyPy.
See this article for more information about the internal structure of .pyc files.