That is because "ML" is a proxy for an entire domain (data science) that has both very distinct requirements and patterns developed over decades and is now evolving very fast as it broke out of the whitecoat lab and (for good or bad) into our lives.
The ascent of python is as the article noted "accidental" but that doesnt mean it is suboptimal given all the requirements of the domain and the available alternatives (here and now).
Its natural to focus on an exceptional attribute (like concurrency) to motivate even having the discussion but this addresses only one of three critical requirements if you decide to do everything within one langauge.
1) Ability to experiment interactively (REPL and friends), expressivity, human oriented language design etc
2) Ability to build production scale models (training or estimation phase) utilizing heterogeneous and fiddly compute
3) Ability to deploy to diverse devices and footprint / latency requirements both natively and as part of a web application. NB: Its only here that the intrinsic qualities of erlang might put it above the rest
Historically there was never an ecosystem than could do all that optimally within just one language. Some of the requirements are arguably even incompatible.
The current preferred solution is not "python" but python/c++ which does some of that well (1, 2) and 3 only passably.
The only declared single language contender is julia but its very far from being a complete ecosystem in the above sense.
Another emerging possibility is mojo, as a superset of python. But that is not even available yet.
Back to the erlang/elixir combo. Its not even clear to me if it can address all of the above in a passable way.
But on the other hand ML is really shaking the game and what is mayne more imprortant is the vitality and resourcefulness of different communities to develop in the direction of the new rewuirement.
We have not seen the end of ecosystem evolution.