Melt butter in a large skillet over medium heat, and cook and stir the onion and garlic until onion is translucent, about 5 minutes. Remove from heat. In a bowl, beat the eggs with the milk until frothy and thoroughly blended.
Place the torn pieces of croissant bottom into a 9x13-inch nonstick baking dish in an even layer. Top the croissant pieces with the cooked onions and garlic in a layer, followed by layers of green onions, smoked salmon, Monterey Jack cheese, Swiss cheese, mozzarella cheese, and dill. Pour the egg mixture evenly over the casserole, and sprinkle with salt and black pepper. Arrange the tops of the croissants over the casserole, pressing them down into the egg mixture to moisten.
Bake the casserole in the preheated oven until the croissant tops are browned and the eggs are set, about 50 minutes. Serve hot.