How to evenly distribute same size holes across a stretched surface
You could model this:


Establish Basic geometry, (mine is an extruded half round-cube) and reserve a highly-subdivided copy, you're going to shrinkwrap to it later
X Delete &gt; Only Faces
Edge Menu &gt; Subdivide



F refill the faces, and Face Menu &gt; Poke them
Select one of the new vertices, and  Shift G Select Similar &gt; Number of Connecting Edges. Deselect the ones you don't want to be holes.
CtrlShiftB Bevel the remaining
selected vertices, with an offset. Note the offset setting.

You can use the shipped add-on Loop Tools &gt; Circle if necessary, to round the holes to a dimension slightly smaller than the bevel offset you noted. Delete the hole faces. Now you use the Srinkwrap modifier targeted on your reserved intact copy to ensure the surface has not been distorted by the edge subdivision, poking, etc, and apply it.
The rest is modifiers: Solidify, Bevel (by angle), Subdivision Surface...