Cette expression signifie “tromper”, “duper”.
Une coutume médiévale voulait que l’on signale les taureaux qui étaient dangereux en leur attachant des touffes de foin aux cornes. Ainsi, quelqu’un qui aurait du foin dans les cornes serait quelqu’un de méchant et dangereux.
À partir du 16e siècle, cette expression signifie “vendre une mauvaise bête, en trompant l’acheteur”. Elle est aussi à rapprocher de l’expression suivante “avoir les cornes” qui signifie être cocu, c’est-à-dire être trompé.