The problem with using shrinkwrap is that it distorts the mesh because the deforming object needs enough matching verts/edges to acommodate the verts/edges of the object you want to deform. So you can either try to get it to match well enough that it doesn’t distort any of your holes, or you can use the other idea you mentioned, and that’s texturing.
Texturing will save you a lot of time, trouble, and memory, and the effect will be just as good.
A simple draw program can be used to create the bump map that will be used to create the appearance of holes. You can easily find something online that will work as an image. All you have to do is turn it into a greyscale in any image editor program. Something like GIMP or Krita will probably already have patterns that you can use for this.
When you have the bump map, just add a bump node to a Principled BSDF node and then attach an image texture node to that and point it to the bump map image you created.
Here’s something I put together in about 15 minutes, using a pattern from Krita: