Why are there not more cores in modern CPUs?
There's a number of technical and business reasons in no particular order:  


Memory bandwidth becomes an issue with scaling of cores. Memory
contention can actually decrease your performance.
Xeon Phi is
the platform where core hungry (and cash loaded) customers can go.  
Most software has been designed to run well single threaded. This
forms a chicken and egg problem. Why try and sell more cores when
most customers can't use them? Most customers won't use them because
hardware isn't built in a core-scaled fashion.
Many customers
are more interested in IIO bandwidth. In that case, you just need
enough cores to service IIO.   
Intel Xeon's do have many more
cores as well, but you'll pay a pretty penny for them in general. In
that regard, it's simply supply and demand.
Because transistor count continues to scale (although not really by Moore's law anymore either), single threaded applications still dominate, and core processing power isn't the bottleneck usually, it's more effective to put those transistors to use making the cache larger and more efficient. Basically, instead of parallelizing the workload by creating more cores, the cores are now getting fed better.
Lack of competition in the highly parallel compute segment prevents consumer level pricing.  
Most mainstream programming languages are ill equipped to handle parallel code well. Even those that appear to haven't seemed to find a way to easily debug parallel code. Potentially a new programming paradigm is necessary to overcome this.
Certain common OS's can actually suffer exponential performance loss the more forks you make so even if you have the cores, the OS handling of it ruins the usage of them. This is an extension of points 3 and 8.