Heat a Dutch oven or large pot over medium-high heat. Add the ground beef and let it brown without stirring for 5–6 minutes to develop color, then break it up slightly with a spoon.
Add the chopped onion and continue cooking, breaking the beef into small pieces, for about 5 minutes more. If there is excess fat, drain a portion, leaving some for flavor.
Stir in the minced garlic, crushed red pepper flakes (if using), Italian seasoning, and the uncooked orzo. Cook and stir for about 1 minute to toast the orzo slightly.
Add the tomato sauce, beef broth, heavy cream, and Worcestershire sauce. Bring to a gentle simmer, then reduce heat to medium or medium-low so the mixture bubbles gently.
Cook uncovered, stirring fairly often to prevent the orzo from sticking, until the orzo is tender about 10 minutes. Adjust heat as needed to maintain a gentle simmer.
Remove the pot from the heat and stir in the grated Parmesan and packed baby spinach until the spinach wilts and the sauce thickens, about 3–5 minutes. Season with salt and pepper to taste and serve immediately.