For what I understand, this would fall under the category of partial shape retrieval/matching problems.
A classification was proposed already some time ago in Tangelder, J. W., & Veltkamp, R. C. (2004). A survey of content based 3D shape retrieval methods. Proceedings Shape Modeling Applications, 2004., 145-156. Basically the resolution methods can fall into a few distinct categories such as: feature based, graph based and geometry based. Only local features and graphs are adapted to partial matching according to this article.
For potential experimentations using Python:
You could also use a matching/registration algorithm such as the ICP provided for example by Open3D. This is however very sensitive to the initial alignment/position of the meshes.
Another solution would be to use deep learning and segmentation. If you have a list of examples that is big enough (and a lot of time to correctly label your data), you could try sampling your mesh and using the PointNet model using for example Keras. This would result in a list of labels associated your points that are themselves associated to a particular class like "pin" or "hole".
But unfortunately for you, I don't think this is a "pretty standard task" :(