Unfortunately I do not have much experience in working with regions. But I find your question so interesting that I am trying now a "solution":
ClearAll["Global`*"]
pays = "France";
ny = ToExpression@
DialogInput[
DynamicModule[{name = ""},
Column[{"How much cities?", InputField[Dynamic[name], String],
ChoiceButtons[{DialogReturn[name], DialogReturn[]}]}]]];
coord = Take[
Table[Reverse[CityData[c, "Coordinates"]], {c,
CityData[{All, pays}]}], ny];
border = ConvexHullMesh[coord]; (* !!! *)
voron = VoronoiMesh[coord];
chm = ConvexHullMesh @@@ MeshPrimitives[voron, 2];
(* here is my idea: the individual intersection of the complete
region with every Voronoi tile: *)
ri = RegionIntersection[border, #] & /@ chm;
grLines = MeshPrimitives[#, 1] & /@ ri;
gr = Graphics[grLines]
DiscretizeGraphics[gr]
While this is quite a crude approach, I am sure there are much more elegant solutions. Maybe someone is going to give a hint.
Cheers Henrik