Preheat the oven to 400°F (200°C). Line a baking sheet with parchment paper.
Toss the butternut squash cubes with olive oil, salt, and pepper. Spread them evenly on the baking sheet and roast for 25-30 minutes, until tender.
While the squash roasts, cook the macaroni according to package instructions. Drain and set aside.
In a blender, puree the roasted butternut squash until smooth. Set aside.
In a large saucepan, melt the butter over medium heat. Stir in the flour and cook for 1-2 minutes, whisking constantly.
Gradually add the milk, whisking to create a smooth sauce. Simmer for 3-4 minutes until thickened.
Stir in the cheddar cheese, Parmesan cheese, and butternut squash puree. Season with nutmeg if desired.
Mix the sauce with the cooked macaroni. Serve warm.