Preheat the oven to 325°. In a large enameled cast-iron casserole, heat 2 tablespoons of the oil. Season the shanks with salt and pepper. Add them to the casserole, 2 at a time, and cook over moderately high heat until browned all over, about 12 minutes. Transfer to a plate and wipe out the casserole.
Heat the remaining 2 tablespoons of oil in the casserole. Add the onion, carrots and garlic and cook over moderate heat, stirring, until lightly browned, about 5 minutes. Add the cumin, coriander, cinnamon, allspice and nutmeg and cook, stirring until lightly toasted, about 1 minute. Add the tomato paste and harissa and cook over moderately high heat, stirring, until lightly browned, about 2 minutes. Stir in the wine and boil until reduced to a thick syrup, about 4 minutes.
Add the tomatoes and 1 cup of the chicken stock to the casserole. Season with salt and pepper and bring to a boil. Nestle the lamb shanks in the liquid. Cover tightly and braise in the oven for about 3 hours, basting occasionally, until the meat is almost falling off the bone. Transfer the shanks to a platter and cover with foil. Leave the oven on.
Strain the sauce into a bowl, pressing on the vegetables; skim any fat. Return the sauce to the casserole and boil over high heat until reduced to 1 cup, about 10 minutes. Return the vegetables and lamb to the sauce and keep warm.
Make Ahead – The lamb can be refrigerated for up to 3 days. Rewarm gently.