Because CS is seen as a bunch of unprincipled, flash-in-the-pan geeky bullshit by most people, not everyone has the talent to be a good programmer (the industry has too many already, the last thing the world needs is more mindless morons plugging libraries together without the foggiest idea of what is going on) and people pursue what interests them. CS has a bad reputation from both ends - the more pure subjects like Philosophy and Math view it as intellectually-inferior (my Analysis professor, who was probably at least 75, obtusely claimed that programming a computer is "easy" and "trivial") and the more concrete, practical subjects such as Electrical, Civil and Mechanical engineering tend to make fun of the CS people (and harbor resentment towards them) for making millions off of websites that foster self-indulgent behavior while they design airplane engines, artificial hearts and power grids.