Place the pork, water, onion, garlic, and salt in a large pot or Dutch oven. Cook covered over medium heat for 1 to 1 ½ hour or until the pork is tender. Transfer the meat to a colander and drain.
Melt the lard in a saucepan. As soon as it bubbles add the grapefruit juice and milk and then the pork. Cook uncovered, over medium heat until the meat is browned, about 20 minutes. The juice and milk will cook off leaving the pork to brown.
Place the fresh poblano peppers in a large saucepan of boiling water. After 5 minutes add the tomatillos. After 3 minutes. Remove the peppers and tomatillos and drain.
Puree the poblanos, tomatillos, garlic, vinegar in a blender. Add the salt and cilantro and blend. For 2 short cycles.
In a bowl combine the puree, avocado and onion. Adjust seasoning if needed.