Préchauffez le four à 180°C. Dans une poêle, faites chauffer l'huile d'olive à feu moyen. Ajoutez l'oignon et l'ail, puis faites revenir jusqu'à ce qu'ils soient tendres.
Ajoutez la viande hachée et faites cuire jusqu'à ce qu'elle soit bien dorée. Incorporez les tomates concassées, la cannelle, l'origan, le persil, le sel et le poivre. Laissez mijoter pendant 15 minutes.
Pendant ce temps, faites griller les tranches d'aubergines sur une plaque au four pendant environ 20 minutes, jusqu'à ce qu'elles soient tendres et légèrement dorées.
Dans une casserole, faites fondre le beurre à feu moyen. Ajoutez la farine et mélangez bien pendant 1 minute. Versez progressivement le lait tout en remuant pour éviter les grumeaux. Faites cuire jusqu'à ce que la sauce épaississe. Retirez du feu et incorporez les œufs battus et la moitié du fromage.
Dans un plat à gratin, disposez une couche d'aubergines, puis la préparation de viande, suivie d'une autre couche d'aubergines. Versez la sauce béchamel sur le dessus et saupoudrez du reste de fromage.
Enfournez pendant 30 à 35 minutes, jusqu'à ce que le dessus soit doré et bouillonnant. Laissez reposer 10 minutes avant de servir.