Preheat the oven to 425°F.
Prepare the eggplant. Lay the slices of eggplant on paper towels, sprinkle lightly with salt, and set aside for 30 minutes to draw out the moisture. Pat dry, then brush both sides of the eggplant pieces with olive oil and season with black pepper. Place on a sheet pan and roast for 20 minutes, flipping halfway through.
Make the meat sauce. In a large skillet over medium heat, add olive oil, onions, ground beef and garlic. Season with oregano, cinnamon, salt and pepper. Cook, stirring occasionally with a wooden spoon until beef is browned and crumbled, about 10 minutes. Add the diced tomatoes, and reduce heat to low. Simmer uncovered until the sauce thickens, about 20 minutes.
Make the bechamel sauce. Melt the butter in a saucepan over medium heat, then whisk in flour and cook, stirring occasionally, until it bubbles. Gradually pour in the warm milk, whisking constantly until it thickens. Bring the mixture to a boil, then decrease the heat to medium and continue cooking for 2 more minutes. Remove from heat and whisk in the salt and nutmeg. In a small bowl, beat the eggs. Then whisk in 2 tablespoons of the bechamel sauce into the eggs to temper them. Pour the mixture into the saucepan with the bechamel sauce and whisk again until the egg mixture is fully incorporated.
Assemble the moussaka. Arrange half of the eggplant in an 8x11 baking dish. Add the meat sauce all over the eggplant and then layer the remaining eggplant on top. Pour the bechamel sauce over the top and smooth out with a spatula. Sprinkle the parmesan cheese on top.
Bake. Decrease the oven temperature to 350°F and bake until the bechamel is set and golden, 35-40 minutes. Allow to cool for 30 minutes to set before slicing and serving.