Preheat the oven to 450 degrees F. Line a rimmed baking pan with foil.
Toss the tomatoes with 1 1/2 tablespoons olive oil, the dried basil, 1/2 teaspoon salt and a few grinds of pepper. Arrange the tomatoes on the prepared baking pan cut-side up and roast until they are slightly shrunken and caramelized, 25 to 30 minutes. Let cool slightly, then remove the skins and cut each tomato in half lengthwise.
Reduce the oven temperature to 400 degrees F.
Whisk the eggs, half-and-half and 1 teaspoon salt together in a bowl. Heat the remaining 1/2 tablespoon oil in a 10-inch cast-iron skillet over medium heat. Grate the garlic over the oil and cook, stirring, until fragrant, about 30 seconds. Add the eggs and distribute the tomatoes and the mozzarella evenly. Cook on the stove until the bottom and edges are just starting to set, about 2 minutes.
Transfer the skillet to the oven and bake until just set in the center, 10 to 12 minutes.
Let stand at least 5 minutes. The frittata can be served warm or at room temperature.