In a large skillet or tagine, heat the olive oil over medium heat. Add the chopped onion and sauté until soft and translucent, about 5 minutes.
Stir in the minced garlic, cumin, coriander, smoked paprika, cinnamon, and cayenne pepper. Cook for an additional 1-2 minutes until fragrant.
Add the drained diced tomatoes, vegetable broth, and honey to the skillet. Bring the mixture to a simmer and let it cook for about 10 minutes, allowing the flavors to meld.
Gently nestle the fish fillets into the sauce, spooning some of the sauce over the top. Cover and cook for 8-10 minutes, or until the fish is cooked through and flakes easily with a fork.
Stir in the sliced olives and chopped parsley. Season with salt and pepper to taste.
Serve the tagine hot with lemon wedges on the side for squeezing over the fish.