Knowing how so many devs are hungry to move to the new shiny thing, the question is often more like "why hasn't this been rewritten in Python3 already?".
Possible answers:
• Legit technical or cost/benefit reasons
• Probably a good idea but no budget/time for the effort
• Somebody already tried and it was a disaster
• No manager has been stupid enough to humor the devs
Most reasonable devs are not jackdaws and do not want a "new and shiny" thing for its shine.
Mostly devs want to go away from the old and increasingly creaky thing. And when the cost / benefit ration is finally right (that is, it's creaking loud enough and slows things down much enough), the move hopefully happens.
> Most reasonable devs are not jackdaws
Most devs are not reasonable.
> the answer is almost certainly that Python3 or some key libraries didn't exist.
This has not been my experience, even within the past few years on occasion.
Really? The only other answer I can imagine is "all our other projects are in Python 2". And generally that means you will reuse some code from those projects. What other reasons have you seen?
By far the most common I run into (even for code started in 2020) - “I dunno, I just typed ‘python’ and used that”
It's a pure cost/benefit analysis question. Switching has some cost, and some benefits, and you have to decide which are likely greater.