Preheat the oven to 400ºF (200ºC). Line a large sheet pan with parchment paper.
Place the cubed butternut squash on the prepared pan. Drizzle with olive oil and season with salt and black pepper. Toss to coat, then spread the squash into a single layer without overcrowding the pan.
Roast for 30 to 35 minutes, or until tender and golden brown around the edges. Remove from the oven and set aside.
Meanwhile, melt the butter in a medium Dutch oven or large 12-inch skillet over medium heat. Continue cooking, swirling the pan occasionally, until the bubbling begins to quiet and the milk solids at the bottom turn golden brown and smell rich and nutty, about 3 to 4 minutes. Watch carefully so the butter doesn't burn.
Add the shallot and cook, stirring occasionally, for about 2 minutes, or until softened.
Stir in the garlic, sage or rosemary, salt, black pepper and lemon zest. Cook for about 1 minute, until aromatic.
Add the orzo and cook, stirring frequently, for 1 to 2 minutes, until lightly toasted and fragrant.
Slowly pour in the white wine while scraping any browned bits from the bottom of the skillet with a wooden spoon. Simmer until the wine has almost completely reduced, about 1 to 2 minutes.
Add the 3 cups of broth, lemon juice and roasted butternut squash. Stir to combine. Bring to a quick boil, then reduce the heat to medium-low.
Simmer for 14 to 16 minutes, stirring occasionally, until the orzo is tender and the mixture is creamy. If the orzo becomes dry before it is completely tender, stir in additional broth as needed.
Remove from the heat and stir in the Parmesan cheese. Taste and adjust the seasoning.
Serve immediately topped with additional Parmesan, red pepper flakes, fried sage or candied pecans, if desired.