It is notably an implementation issue, not a language one (however the typing is different in the languages).
Pedantically, both Python & C++ are Turing-complete languages with a lot of bindings to external libraries, so every program you could write in Python could be rewritten in C++ and vice versa.
/usr/bin/python (a.k.a. cpython) is a bytecode interpreter
/usr/bin/g++ is a native compiler
So very often a C++ program would be faster than the equivalent python program.
notice that there are experimental python compilers (e.g. pypy) and experimental C++ interpreters.
So C++ is good for programs which need to be fast, but may accept more development time, and Python is good for programs which need to be written quickly.
You probably won't write a Unix shell or an OS kernel (or even an optimizing C++ compiler) in Python (but in C++ or C), and you probably won't write a sysadmin script or utility in C++ (but in Python).
Also, a C++ program can usually be distributed as a self-contained executable (either statically linked, or using many C++ shared libraries).
BTW, some Common Lisp implementations (e.g. SBCL) brings you a dynamic typing and an expressivity close to Python with a performance close to C++.