Preheat a grill to medium-high. In a shallow dish, whisk together the olive oil and lemon juice and season with salt and pepper. Add the halibut, tomatoes, olives and onion chunks and toss gently to coat.
In a small saucepan, add the butter and finely chopped onions and cook over medium heat until the butter foams, 6 to 8 minutes. Stir in the tarragon and lemon peel; season with salt and pepper, then cover and remove from the heat.
Thread the halibut, olives, tomatoes and onion chunks onto skewers. Grill, turning occasionally, until the halibut is just cooked through and the onions are softened, 6 to 8 minutes. Transfer to a platter and spoon the tarragon butter on top.