Основная причина в том, Python - очень медленный язык, но к нему написано огромное количество библиотек (на С++), которые реально быстрые.
Поэтому, кстати, получается, что самому реализовывать сложные алгоритмы на питоне менее выгодно (с точки зрения машинного времени), чем использовать готовое решение из какой-нибудь numpy или pandas.
Этот подход накладывает определенные ограничения на стиль работы самих программистов - типичный прогер на Python чаще всего не пишет программу как таковую, а решает конкретную задачу, которая является частью более глобального проекта. Его не волнуют ни ресурсы системы, ни тонкости работы интерфейсов - все за него сделано другими программистами.
Когда же требуется бОльшая гибкость и необходимость контролировать алгоритмы работы программы досконально - тогда и возникает потребность в таких языках, как С++ или Java.
То есть Вы можете реализовать мобильное приложение на Python, например, но если потребуется что-то выходящее за рамки готовых библиотек, то это будет либо убого, либо медленно.