Bring a large pot of water to the boil and add the courgettes. Set heat to medium and cook the courgettes until they feel slightly soft when pressed with a wooden spoon, about 20 minutes. Drain the courgettes and set aside to cool.
Meanwhile, heat the vegetable oil in a frying pan over medium heat and cook and stir the onion and garlic until the onion is translucent, about 5 minutes. Stir in the minced beef and cook and stir until the beef is no longer pink, about 8 minutes. Stir in the paprika and set aside.
Cut the courgettes in half lengthways and scoop out the flesh with a spoon, leaving a 1.25cm thick shell. Chop the courgette flesh and mix into the beef.
Preheat oven to 180 C / Gas 4.
In a saucepan over low heat, melt the butter and whisk in the flour until smooth. Pour in the milk, a little at a time and bring the mixture to a simmer, whisking constantly. Whisk in white pepper, nutmeg and salt. Stir in half the Parmesan cheese to create a smooth sauce. Mix the white sauce thoroughly with the beef. Place the courgette halves into a baking dish. Fill the courgette shells with the beef and sprinkle each with about 1 1/2 tablespoons of the remaining Parmesan cheese.
Bake in the preheated oven until the Parmesan cheese topping begins to turn golden brown, about 15 minutes.