I observed a strange behavior using Polygon with Graphics3D in MMA14.1.
Here is my example.
polygon = {{-0.4, 1.7, 0.}, {-0.8, 1.7, 0.}, {-1.2, 1.8, 0.}, {-1.4,
1.9, 0.}, {-1.5, 2., 0.}, {-1.5, -0.5, 0.}, {1, -0.5, 0.}, {1,
1.8, 0.}};
hole = {{0., 0., 0}, {0.5, 0., 0.}, {0.5, 0.5, 0.}, {0., 0.5, 0.}};
Graphics3D[Polygon[polygon -> hole], Axes -> True]
Its result is an unfilled 3D polygon on the XY-plane.
However, by slightly changing the first coordinate, for example ( {-0.4, 1.7, 0.} -> {-0.4, 1.8, 0.} ), it works as expected.
Could someone please explain this situation?
According to the suggestion from user64494
Graphics3D[
Polygon[Join @@ (Append[#, #[[1]]] & /@ {polygon, Reverse[hole]})]]