Mix the meatballs: In a large bowl, combine ground turkey, grated onion, garlic, egg, yogurt, breadcrumbs, dill, oregano, cumin, lemon zest, salt, and pepper. Stir gently until just combined.
Avoid overmixing to keep the meatballs tender.
Form the meatballs: With damp hands, shape into 18–20 meatballs, about 1 1/2 inches in diameter. Place on a plate or tray.
Sear the meatballs: Heat 2 tablespoons olive oil in a large nonstick skillet over medium-high heat. Add meatballs in a single layer without crowding.
Sear until golden on two sides, about 5–7 minutes total. Transfer to a plate. Work in batches, adding more oil if needed.
Start the orzo: In the same pan, reduce heat to medium.
Add 2 tablespoons olive oil and the garlic. Cook 30 seconds until fragrant. Stir in the orzo and toast 1–2 minutes, stirring to coat.
Add broth and simmer: Pour in 3 cups of warm broth and the lemon zest.
Stir, then lower heat to a gentle simmer. Cook, stirring occasionally, until the orzo is mostly tender, 8–10 minutes. Add more broth as needed if the pan looks dry.
Return meatballs to the pan: Nestle the seared meatballs into the orzo.
Cover and simmer 5–7 minutes, or until the meatballs reach an internal temperature of 165°F (74°C) and the orzo is al dente.
Finish with lemon and feta: Stir in lemon juice, feta, and herbs. If using, fold in spinach until wilted. Taste and adjust salt, pepper, and lemon.
The orzo should be creamy but not soupy; add a splash of broth if too thick.
Serve: Spoon into bowls and top with extra feta, fresh herbs, and any optional toppings. Offer lemon wedges on the side.