Julia doesn't have broad adoption because it's too specific, and C++/Rust are more cumbersome, also Python for data science and ML was popular before Rust or Julia even existed. Python's biggest advantage is that it's good enough for general usage while also being convenient for data science.
Well that's the problem. Part of why Python is nice for ML stuff is because it was adopted for several other purposes too. I've never used Julia but have used niche things like Erlang, and there's always more friction that way.