Combine onions, white wine, soy sauce, lemon juice, honey, olive oil, garlic, cinnamon, salt, and pepper in a medium bowl. Mix well, then pour mixture all over lamb. Cover the dish with plastic wrap and marinate in the refrigerator for 1 hour.
Preheat the oven to 400 degrees F (200 degrees C).
Remove the plastic wrap and roast lamb in the preheated oven until browned and tender, about 1 hour 10 minutes. An instant-read thermometer inserted into the center should read 130 degrees F (55 degrees C) for medium doneness.