Perhaps if you convert the verticies of the shore line to points with a 'minicipality' attribute
(making sure the shore line breaks at the municipal bounds), then run
CreateThiessenPolygons_analysis (in_features, out_feature_class, {fields_to_copy})
quote: The outside boundary of the output Thiessen polygon feature class is the extent of the point input features plus an additional 10%. If the Extent environment is set to a specific extent window, this tool tool will use the environment setting to set its outside boundary.
:unquote
Then clip to the buffer (which will have been smaller than the Extent environment or the 10%),
erase the land area, and dissolve on 'municipality'.
You should get polygons with areas closest to the shore of each municipality.
Alternatly, you could run a Near analysis on your offshore points to identify the nearest on-shore municipality polygon to each point.