Place the marinade ingredients in a glass bowl and whisk to combine. Add the lamb, toss to coat, and marinate at least 2 hours or up to overnight.
When you’re ready to eat, thread the meat and onions onto skewers.
To cook on a gas grill: Preheat the grill on high with the lid closed until very hot, about 10-15 minutes. Grill the skewers uncovered, turning every 1-2 minutes, until lamb is cooked to desired doneness, 7-8 minutes total for medium-rare to medium.
To broil in the oven: Heat broiler on high. Place the skewers on a broiler pan and broil, flipping once, until the cubes are evenly browned but still pink in the middle, about 2-4 minutes per side.
To roast in the oven: Preheat oven to 375F. Place skewers on a baking sheet and roast, flipping once, until the cubes are evenly browned, about 12 minutes for medium-rare or 15 minutes for medium to medium-well.