Cook eggs (if using): Bring a saucepan of water to simmer over medium heat. Gently lower in eggs and cook for 6½ minutes (adjust timing for your preferred yolk doneness). Transfer eggs to an ice bath to cool, then peel.
Saute aromatics: Meanwhile, melt butter in a large skillet over medium heat. Add shallot, garlic, salt, and pepper. Cook, stirring frequently, until shallots are translucent, about 3 minutes.
2 tablespoons butter, 1 large shallot, diced, 2 cloves garlic, minced, ¼ teaspoon fine sea salt, ¼ teaspoon black pepper, to taste
Add orzo: Add orzo to skillet, toss to coat. Pour in vegetable stock and bring to a boil over medium-high heat. Then, reduce heat to medium and cook, stirring occasionally, until orzo is al dente, 10 to 12 minutes.
⅔ cup orzo, 2 cups vegetable stock
Finish and serve: Remove skillet from heat and immediately add lemon juice, zest, spinach, and parmesan cheese. Stir until spinach is slightly wilted. Taste and season with more salt and pepper, if needed. Divide orzo into bowls, top with feta, dill, and eggs (cut in half), if using.
2 tablespoons lemon juice, 1 teaspoon lemon zest, 1 cup chopped baby spinach, 2 tablespoons Parmesan cheese, 3 tablespoons crumbled feta cheese, Fresh dill