Whisk together the yogurt, mayonnaise, honey, vinegar, sugar, and salt in a large bowl. Stir in the broccoli, cauliflower, bacon, shallots, cranberries, and pecans, tossing to coat. Cover and chill 1 hour.
The dressing and salad can be made and stored separately 1 day ahead. Add the dressing 1 hour before serving to allow the flavors to really come together.