Here’s a example, much simplified from what I’m actually working on.
data is a list of {x,y,z}'s. If I project data onto the xy plane, the result is a non-convex area (actually, two disks just touching). But ListPlot3D[data] fills in the non-convexity.
The documentation of ListPlot3D includes an example with “holes”. But the data in that example is in a different form.
Reading closely, the documentation does not claim to handle non-convexity correctly when the data is given in the form of my original notebook. If I switch to the form of data in the documentation, I get the expected graph. (But I still complain that the result should not depend on exactly what form the data is given in. And why not show the x-axis with x increasing from left to right, as is customary on most of this planet.)
Aaaaand …here’s why the ability to handle non-convexity differs depending on the way the data is presented: If the data is presented as an rectangular array of values, then it is clear what is “missing” value. But if the array is presented as a lists of {x,y,z}'s, then there’s no way to tell the difference between a missing value which should be left as a hole, and someting that needs to be filled. in.