Soak bay leaves in warm water for 1 hour to soften.
MARINATE:
In a medium bowl, whisk together the olive oil and lemon juice. Add the olives, garlic, lemon zest, and freshly ground black pepper to taste and continue mixing to combine.
Place the fish and marinade in a covered bowl or in a zip baggie and marinate at room temperature for 30 minutes to 1 hour.
ASSEMBLE AND GRILL:
Heat the grill to medium-hot. Lightly oil a grill rack.
Remove the fish from the marinade (reserve the marinade). Thread the tomatoes, fish, bay leaves and onion pieces, in that order onto the skewers. Fill all but the top 1½ inches or so on each skewer. Place the skewers on the grill and cover, making sure the air vents are open. Grill, turning and basting with the reserved marinade, until the fish is cooked and the vegetables are lightly charred, 10 to 12 minutes. Serve immediately.