Brush the eggplant slices with olive oil on both sides and place them on a baking sheet. Bake in the preheated oven for about 20-25 minutes or until they are tender and slightly browned. Remove from the oven and set aside.
In a large skillet, heat the olive oil over medium heat. Add the chopped onion and cook until it becomes translucent, about 3-4 minutes. Add the minced garlic and cook for an additional minute.
Add the ground beef or lamb to the skillet and cook, breaking it apart with a spoon, until it’s browned and no longer pink. Drain any excess fat from the meat.
Stir in the crushed tomatoes, tomato paste, dried oregano, ground cinnamon, salt, and black pepper. If using, add the red wine. Simmer the mixture for about 15-20 minutes until it thickens. Remove from heat.
In a separate saucepan, prepare the bechamel sauce. Melt the butter over medium heat, then stir in the flour to make a roux. Cook for a minute or two, but don’t let it brown.
Gradually whisk in the milk, nutmeg, salt, and white pepper. Continue to cook, stirring constantly, until the sauce thickens, about 5-7 minutes.
Remove the saucepan from heat and gradually whisk in the beaten eggs. Stir in the grated Parmesan cheese until the sauce is smooth.
To assemble the moussaka, place a layer of the baked eggplant slices on the bottom of a greased 9×13-inch baking dish. Add a layer of the meat mixture on top of the eggplant. Repeat these layers until all ingredients are used, finishing with a layer of eggplant on top.
Pour the bechamel sauce evenly over the top layer of eggplant, spreading it with a spatula.
Bake the moussaka in the preheated oven for about 45 minutes or until the top is golden brown and the filling is bubbly.
Allow the moussaka to cool for a few minutes before slicing and serving.