Heat the oil in a wide deep skillet over medium-high heat. Brown the beef and onion for 6 to 7 minutes, breaking up the meat and cooking to 160°F.
Stir in garlic and tomato paste for 1 minute. Add the dry orzo and stir to coat the grains.
Pour in broth and tomatoes with their juices, then add oregano and salt. Bring to a simmer, cover and cook over medium-low heat for 9 to 11 minutes, scraping the bottom every 2 minutes.
Check that the orzo is tender; simmer uncovered briefly if the sauce is very loose, or add 2 tablespoons water if it has tightened before the pasta is done.
Fold in spinach until wilted, remove from the heat and stir in Parmesan. Serve immediately in bowls.