A questão proposta mistura, de forma não muito rigorosa, fenómenos distintos da evolução lexical do português e do espanhol. Não se trata de o português ter “trocado” um termo por influência do espanhol ou vice-versa, mas sim de cada língua ter desenvolvido, de forma autónoma, formas populares que vieram a substituir, no uso corrente, os vocábulos herdados diretamente do latim clássico.
Em português europeu, o termo cão, proveniente do latim canis, é comummente utilizado. Já a palavra cachorro, por outro lado, também tem origem antiga, com testemunhos desde a Idade Média, sendo referente originalmente ao filhote de cão ou, em sentido mais amplo, de outros animais mamíferos. Com o tempo, particularmente no português do Brasil, o vocábulo generalizou-se para designar o animal adulto, tornando-se a forma predominante no uso quotidiano. Este fenómeno pode dever-se a mecanismos linguísticos comuns, como a tendência para o uso de formas mais afetivas ou eufemísticas no convívio familiar e popular.
Já no espanhol, o vocábulo corrente para cão é perro, cuja etimologia, segundo o Dicionário da Real Academia Espanhola, é incerta. De acordo com Diccionario crítico etimológico del castellano e hispânico, trata-se possivelmente de uma forma originada por onomatopeia — como prrr ou brrr — usada por pastores para chamar ou incitar os cães no trabalho com o gado. Antes da consolidação de perro, o espanhol usava can, forma culta derivada do latim canis, que ainda subsiste em registos poéticos ou técnicos.
Importa notar, ainda, que o termo perro também teve uso esporádico no português medieval, com registos datados do século XII (cf. Dicionário Houaiss), embora nunca tenha adquirido o estatuto de vocábulo corrente em português.
Em suma, tanto em português como em espanhol, houve substituições ou concorrências lexicais entre formas eruditas e populares, sem que se possa falar em trocas de uma língua para a outra. O que se verifica é uma evolução paralela, enquanto em espanhol se popularizou perro em vez de can, em português europeu o uso preferencial é cão, ao passo que em português do Brasil se prefere cachorro.