Chop the zucchini and onions finely. Heat the oil in a skillet and cook the zucchini and onions on medium heat until very soft, about 15 minutes. Remove from the stove and smash them with a fork.
Soak the bread in the milk and smash it to a fairly smooth consistency. Add the zucchini to this along with the eggs, nutmeg, salt, and pepper. Mix well.
Butter a 2 quart glass loaf pan and add half of the mixture, pressing it firmly to the bottom in one even layer. Add the spinach all in one neat layer and sprinkle with a little salt and tarragon if you wish. Finish with the other half of the egg mixture.
Place the loaf pan in a larger dish, then add water to the larger dish to half-way up the sides of the loaf pan. Bake at 325° F for 1 hour and 15 minutes. Turn off the heat and leave the terrine in the oven for another 15 minutes. Remove from the oven, allow to cool, and refrigerate for several hours or overnight before serving. Cut into slices to serve.