Prepare an outdoor grill or grill pan over high heat. Grill the tomato and onion pieces, turning to get grill marks on all sides, until the vegetables are softened, 5 to 8 minutes. Keep the grill on to cook the shrimp.
Heat the oil in a medium saucepan over medium heat. Add the brown sugar, 2 teaspoons salt, ancho chile powder, black pepper, allspice, cinnamon, mustard, cayenne and bay leaf. Stir just until the smell of the spices hits your nose, about 30 seconds. Add the vinegar and the grilled tomatoes and onions, stirring to incorporate, and cook until the tomatoes come apart and become thick and jam-like, about 8 minutes.
Remove the bay leaf and put the contents of the sauce into a blender. Puree until smooth. Add the lemon juice, horseradish and salt to taste.
Thread the shrimp onto the skewers. Divide the sauce, reserving about a cup for serving. Place the skewers on the grill and brush with the remaining sauce. Turn the shrimp occasionally and continue to brush with sauce until the shrimp are cooked through and the sauce is slightly charred, about 8 minutes. Serve with reserved sauce on the side.