Heat oil in a large skillet over medium heat. Add onion, and cook until softened, about 8 minutes. Reduce heat to medium-low, add garlic, and cook, stirring occasionally, until onion and garlic are very soft and golden, about 20 minutes. Add spinach, and cook, tossing often, until wilted, about 4 minutes. Let cool slightly.
Puree mixture in a food processor until smooth. Add watercress, avocado, yogurt, lemon zest and juice, hot sauce, and salt, and season with pepper. Puree until smooth. Transfer to a bowl, cover, and refrigerate for at least 1 hour (or up to 3 days). Stir the dip, and serve with crudites.