Preheat oven to 425 degrees F or grill to medium-high.
Season the fish with salt and pepper and drizzle with 2 tablespoons olive oil to coat.
In a bowl, combine the tomatoes, shallots, and tarragon; season to taste with salt and pepper.
Toss with remaining 2 tablespoons olive oil.
Cover a baking sheet with foil. Range 4 piles, each with 2 lemon slice, 1 fish fillet and a quarter of the tomato-shallot mixture.
Cover with another sheet of foil and pinch together on all four sides to seal the packet.
Roast the fish in the oven or closed grill until opaque, 15 to 18 minutes. If grilling, don't use the baking sheet and be sure the foil packet is well sealed. You may want to divide the fish into two (or even 4) sealed packets for ease in grilling.
Open the foil packet and, using a large spatula, transfer the fish to plates.
Pour the cooking juices over the fish.
Pass crusty French bread around the table to mop up the juices.