Boa noite, Rangel!
Vejo que o fato de Python ser orientado a objetos não estabelece uma relação entre a tipagem e polimorfismo. Basta ver o C# que também é orientado a objetos, é fortemente/estaticamente tipado e também possui polimorfismo. Outro exemplo é a linguagem C que não é orientada a objetos, mas é fortemente tipada e não possui polimorfismo (exceto através de algumas adoções de design patterns, portanto ainda assim não é algo nativo).
Então de forma a responder a sua pergunta, vejo que a questão de polimorfismo é um conceito atrelado a orientação a objetos que pode variar conforme a tipagem da linguagem utilizada. No C# acaba se recorrendo a herança entre classes e interfaces. Já no Python, por não exigir uma tipagem tão estrita como no C#, acaba sendo mais uma questão de herança ou de classes que tem métodos com implementações semelhantes (mesmo nome e retorno, por exemplo) que implica no duck-typing.