Preheat oven to 150C. Heat half the olive oil in a casserole over medium-high heat, add onion and garlic, sauté until tender (4-5 minutes), add lamb, tomato, wine and spices. Cover casserole, transfer to oven and cook until meat falls from the bone (2¼-2½ hours). Remove meat from sauce, shred with forks, place in a bowl. Add enough sauce to moisten (discard any remaining sauce), season to taste.
Meanwhile, place eggplant cut-side up in a roasting pan, drizzle with remaining olive oil and roast until tender (40-45 minutes). Make a cavity in the centre of each eggplant half with a spoon and fill with lamb mixture.
For béchamel sauce, melt butter in a small saucepan over medium heat, add flour, stir to combine, cook until golden (2-3 minutes), slowly whisk in warm milk and cook until bubbling and thickened (5 minutes). Stir in cheese and nutmeg and season to taste.
Increase oven to 200C. Spoon béchamel over lamb, top with cheese, bake until eggplant is warmed through and cheese is melted (12-15 minutes) and serve.