Prep the oven or air fryer. Heat the oven to 450°F (232°C) and place a rack in the upper third. Line a sheet pan with parchment and set a wire rack on top if you have one.
For an air fryer, preheat to 400°F (204°C).
Dry and season the fish. Pat fillets dry with paper towels. Cut into bun-size pieces if needed. Sprinkle both sides with a pinch of salt and pepper.
Dry fish equals better crunch.
Mix the slaw. Toss cabbage, carrots, herbs, vinegar, honey, olive oil, and salt. Let it sit to soften slightly. You want bright and tangy, not soupy.
Adjust salt to taste.
Stir the sauce. In a small bowl, mix Greek yogurt, light mayo, Dijon, lemon juice, capers or relish if using, plus salt and pepper. It should be zippy and spreadable.
Set up the coating station. In one shallow bowl, add flour plus garlic powder, onion powder, smoked paprika, salt, and pepper. In a second bowl, beat the eggs (or whisk mayo with water).
In a third, add the panko.
Bread the fish. Dredge each fillet in seasoned flour, dip in egg, then press into panko. Press gently so the crumbs stick. Place coated fish on the prepared rack or air-fryer basket. Lightly drizzle or spray with oil on both sides.
Bake or air-fry to crisp. Oven: bake 10–12 minutes, then broil 1–2 minutes to brown if needed.
Air fryer: cook 8–10 minutes, flipping halfway. Fish is done at 145°F and flakes easily. Avoid overcooking.
Toast the buns. While the fish finishes, warm or lightly toast the buns in the oven for 2–3 minutes. A warm bun keeps the sandwich from getting soggy.
Build the sandwiches. Spread sauce on both bun halves.
Add lettuce, then the crispy fish. Top with slaw, tomato, onion, and pickles. Squeeze a little lemon over the fish before closing the sandwich.
Serve right away. These are best hot and crunchy.
Keep extra slaw and sauce on the side for dipping.