Zaatar-Crusted Fish Fillets with Roasted Vegetables

Written by Sarah Gardner

This is my favorite kind of "looks fancy, cooks easy" dinner: flaky fish fillets with a crunchy zaatar crust, tucked next to caramelized roasted vegetables that basically sauce themselves with olive oil, lemon, and warm spices. It's not trying to be a literal tagine, but it absolutely scratches that cozy, savory-sour, herb-and-citrus itch that makes a good moroccan fish recipe so craveable. Bonus: everything happens on one pan, the fish stays juicy, and the veggies come out sweet around the edges with those little browned bits you'll want to scrape up with bread.

Zaatar-Crusted Fish Fillets with Roasted Vegetables (Weeknight Moroccan-ish Sheet Pan Dinner)

Crispy zaatar fish fillets roasted on a sheet pan with spiced vegetables, lemon, and a quick preserved-lemon yogurt.
Prep Time 20 minutes
Cook Time 25 minutes
Total Time 45 minutes
Course Main Dish
Cuisine Moroccan
Servings 4

Equipment

  • Rimmed baking sheet Use a standard 18x13-inch sheet pan so the vegetables roast instead of steam; a large roasting pan works too, but spread the veg in a single layer.
  • Parchment paper or foil Parchment helps prevent sticking and makes cleanup painless; foil is fine but lightly oil it so the fish crust releases cleanly.
  • Mixing bowl One medium bowl for tossing vegetables; if you hate dishes, toss directly on the sheet pan, but mix well so spices don't clump.
  • Microplane or fine grater For lemon zest and garlic; a small knife works, but grating makes a smoother yogurt sauce.
  • Instant-read thermometer (optional) Not required, but it's the easiest way to avoid overcooking; pull fish at 135ยฐF to 140ยฐF and let carryover finish it.
  • Fish spatula (optional) A thin, flexible spatula keeps fillets intact; any spatula works if you slide it fully under the fish before lifting.

Ingredients
ย ย 

For the roasted vegetables

  • 2 bell pepper any color, sliced into 1-inch strips
  • 1 zucchini cut into 1-inch half-moons (swap for eggplant if you want it more tagine-like)
  • 1 red onion cut into thick wedges so it doesn't disappear
  • 1 cherry tomato use 1 pint; they burst and turn jammy in the pan
  • 3 tablespoon olive oil extra virgin; avocado oil works too
  • 1 teaspoon ground cumin warm and earthy; coriander is a good swap if that's what you have
  • 1 teaspoon sweet paprika adds color and gentle sweetness; use smoked paprika if you want a deeper roast flavor
  • 1 teaspoon kosher salt use 1/2 teaspoon if using fine salt
  • ยฝ teaspoon black pepper freshly ground if possible
  • 1 lemon half sliced into thin rounds for roasting, half reserved for finishing

For the zaatar-crusted fish

  • 4 white fish fillet cod, haddock, halibut, sea bass, or tilapia; boneless, skinless, about 6 ounce each
  • 1 tablespoon olive oil helps the crust brown
  • 2 tablespoon zaatar store-bought is great; if yours is very salty, reduce added salt below
  • 2 tablespoon panko breadcrumb for extra crunch; swap with regular breadcrumb or crushed matzo
  • 1 tablespoon sesame seed optional, but really plays up the zaatar
  • 1 teaspoon kosher salt use 1/2 teaspoon if using fine salt, and reduce if your zaatar is salty

Quick preserved-lemon yogurt (optional but highly recommended)

  • ยพ cup plain greek yogurt whole-milk is the creamiest; dairy-free yogurt works but choose an unsweetened one
  • 1 tablespoon preserved lemon finely chopped rind only (no pulp); swap with 1 teaspoon lemon zest plus 1/2 teaspoon extra salt
  • 1 garlic clove finely grated, or substitute 1/4 teaspoon garlic powder
  • 1 tablespoon water thin to a drizzle-able sauce; add another tablespoon if needed
  • 1 tablespoon olive oil optional, but it makes the sauce taste rounder

To finish

  • ยผ cup cilantro roughly chopped; parsley or mint works if you're not a cilantro person
  • 1 lemon cut into wedges for serving

Instructions
ย 

Prep

  1. Heat the oven to 425ยฐF. Line a rimmed baking sheet with parchment paper (or foil, lightly oiled). This high heat is what gives you browned edges on the vegetables without turning the fish into cotton.
  2. Pat the fish fillets very dry with paper towel and set them in the fridge while you start the vegetables. Dry fish is the secret to a crisp zaatar crust that sticks instead of sliding.

Roast the vegetables first

  1. In a mixing bowl, toss bell pepper, zucchini, red onion, and cherry tomato with 3 tablespoons olive oil, cumin, paprika, 1 teaspoon kosher salt, and 1/2 teaspoon black pepper. Add half the lemon slices and toss again so the slices get coated (they'll candy a little in the oven).
  2. Spread the vegetables on the sheet pan in a single layer. Roast for 15 minutes. You want the peppers and onions starting to soften and the tomatoes just beginning to blister. This staggered start is the key to getting properly roasted moroccan fish and vegetables on one pan, because fish cooks faster than sturdy veg.

Make the crust and sauce while the vegetables roast

  1. In a small bowl, mix zaatar, panko breadcrumb, sesame seed (if using), and 1 teaspoon kosher salt. Drizzle in 1 tablespoon olive oil and stir until the mixture looks like damp sand. If it feels dry, add 1 teaspoon more oil; the crumbs should clump when you pinch them.
  2. Optional sauce: In another small bowl, stir greek yogurt, preserved lemon, grated garlic, water, and optional olive oil until smooth. Taste and adjust: it should be bright, a little salty, and garlicky. Refrigerate until serving so it stays thick.

Add the fish and finish roasting

  1. After the vegetables have roasted for 15 minutes, pull the pan out and use a spatula to nudge them around, making 4 little spaces for the fish. This keeps the fish from sitting in vegetable juices, which would soften the crust.
  2. Set the fish fillets into the open spaces. Brush the tops lightly with a little olive oil if they look dry, then press the zaatar mixture firmly onto each fillet (don't just sprinkle it; actually press so it adheres). Add the remaining lemon slices around the fish.
  3. Return the pan to the oven and roast for 10 minutes. The fish is done when it flakes easily and turns opaque in the thickest part; if using a thermometer, aim for 135ยฐF to 140ยฐF, then rest 2 minutes for carryover. If you want extra color on the crust, broil for 2 minutes, watching closely so the crumbs don't burn.

Finish and serve

  1. Squeeze the reserved lemon half over the vegetables and fish right when they come out of the oven. This last hit of acid makes everything taste sharper and more "restaurant."
  2. Scatter cilantro over the pan. Serve the fish with a big spoon of roasted vegetables and a drizzle of preserved-lemon yogurt on top (or on the side for dipping). If you're collecting moroccan fish dinner ideas, this one is especially good with warm flatbread to swipe through the pan juices.

Pairings

Moroccan Side Dishes That Make It a Full Plate

  • Couscous With Olive Oil and Lemon: Couscous is the easiest starch here: it soaks up the tomato-lemon pan juices and lets the zaatar crust stay the star. Add a pinch of cumin and a handful of chopped herbs to keep the flavors in the same lane.
  • Warm Chickpea Salad: Toss canned chickpeas with a little olive oil, lemon, and chopped parsley, then warm them in a skillet. It turns this into one of those moroccan fish recipes healthy enough for a weeknight, but still filling.
  • Crusty Bread or Pita: Not traditional, but extremely practical. Bread is your tool for getting every last roasted tomato and oniony, spiced oil off the pan.

Beverage Options

  • Mint Tea (Hot or Iced): The herbal sweetness plays beautifully with zaatar's thyme and sesame notes. If you keep it lightly sweetened, it also balances the salty, tangy preserved-lemon yogurt.
  • Sparkling Water With Lemon and Cucumber: Clean, crisp, and refreshing, especially if your vegetables caramelize deeply. It keeps the meal feeling bright rather than heavy.

Wine Pairings

  • Sauvignon Blanc: All that citrus and herbal aroma matches the lemon, cilantro, and zaatar without getting lost. It's a great choice if you want the dinner to feel snappy and fresh.
  • Dry Rosรฉ: Rosรฉ handles roasted vegetables like a champ, especially the sweet peppers and blistered tomatoes. It's also forgiving if you add extra spice or a little harissa at the table.

Extra Toppings (Choose Your Mood)

  • Harissa: A small spoon on the side gives heat and depth. It nudges the whole thing closer to fish tagine moroccan vibes without changing the easy sheet-pan method.
  • Toasted Almonds: A sprinkle adds crunch and a gentle nuttiness that echoes the sesame in zaatar. Toast them in a dry skillet for 3 minutes and they taste ten times more expensive.

FAQs

What kind of fish fillets work best here (and do they need to be boneless or skinless)?

Use boneless white fish fillets that are fairly thick so they don't overcook: cod, haddock, halibut, sea bass, or even tilapia. Skinless is easiest for the zaatar crust because the topping sticks directly to the flesh. Skin-on is fine too, but crust only the flesh side and plan to lift the fillet off the skin when serving.

Can I use frozen fish?

Yes, but thaw it completely and pat it very dry. Frozen fish releases extra moisture, and moisture is what turns a crunchy crust into a soft one. After thawing, let it sit on paper towel for 5 minutes, then blot again before adding oil and crust.

Is this a traditional moroccan fish stew?

No, this is a roasted, sheet-pan style moroccan fish recipe inspired by tagine flavors (warm spices, lemon, herbs), not a brothy stew. If you want it more like a traditional moroccan fish stew, spoon a quick tomato sauce over the vegetables before roasting (crushed tomato plus garlic, cumin, and a little water), then nestle the fish into that sauce for the final 10 minutes.

How do I keep the vegetables from turning mushy while the fish cooks?

Give the vegetables a head start (15 minutes at 425ยฐF) and keep them spread in one layer. Also, make spaces for the fish so it's not sitting in vegetable juices. That setup is what makes the "moroccan fish and vegetables" combo work without steaming.

What if I can't find zaatar?

You can fake it in a pinch: mix 1 tablespoon dried thyme or oregano, 1 tablespoon sesame seed, 1 teaspoon ground sumac (or lemon zest), and a pinch of salt. It won't be identical, but you'll still get that herby, nutty, citrusy profile that makes this one of those reliable moroccan fish dinner ideas you'll repeat.

Copyright 2026 The Hungry Goddess, all rights reserved.

Save this recipe offline

9:41
Recipe
Recipe

-- total
Easy
Prep --
Cook --
Source
Cook Mode
Screen on ยท Track progress