First, many problems there are much harder just to get to the level that one can do any valuable contribution. And approaching them goes well beyond reading tutorial, playing with it, asking some questions on SE, being expert.
In mathematics, or medicine, it's rather years than weeks.
Second, many deep problems are not that easy to commercialize; even if they may, possibly, save many lives in future, they are not an easy base to make profit in, say, next 10 years.
Third, as projects are way to hard to be run by a few enthusiasts + commercialization is not straightforward - everything works in universities, with an inertia typical for huge institutions (and no 2-3 people startups are available). As a secondary effect, it deters creative people to pursue such option.
And fourth, there is money in programming. When you fail a startup you can still get a great job. If you fail your academic career - it may be harder.