In a medium bowl, combine the ketchup, lemon zest and juice, horseradish, Tabasco, salt, and pepper, if using. Taste and adjust the seasonings, adding more horseradish if you like. Refrigerate if not using right away.
Heat a gas grill to medium high or prepare a medium-hot charcoal fire. (If using charcoal, be sure the grate is hot, too.) Just before cooking, toss the shrimp in the oil to coat, sprinkle with the Old Bay, and toss to coat evenly (I like to do this in a zip-top bag).
Put the shrimp on the grate directly over the heat and cook for 6 to 7 minutes, turning once halfway through. The shrimp are done when the shells are bright pink and the meat is opaque. Pile the shrimp on newspapers to peel and serve with the cocktail sauce, melted butter (if using), and lots of paper towels.
The cocktail sauce will keep for a week, refrigerated.