Cette expression du langage courant en forme d'idiotisme animalier signifie "Très mal s'entendre, ne pas cesser de se chamailler, de se disputer, ne pas se supporter ; être incapable de se cotoyer ou de cohabiter, être perpétuellement en conflit".
Elle remonterait au XVIIe siècle et se fonde sur la croyance populaire en vertu de laquelle, les chiens et les chats seraient des animaux instinctivement ennemis l'un de l'autre.
Pourtant - comme moi, j'imagine - il vous est déjà très certainement arrivé d'être témoin de relations d'amitié entre animaux de ces deux espèces.
Il existe de nombreuses expression antonymes que j'ai réuni dans mon article consacré à toutes les façons de dire "S'entendre très bien", dont je vous recommande bien évidemment la lecture.