Season shrimp with Cajun seasoning and let sit for 10 minutes.
Heat vegetable oil in a large skillet over medium-high heat. Cook shrimp until pink and cooked through, about 2-3 minutes per side. Remove and set aside.
In the same skillet, melt butter over medium heat. Gradually whisk in flour to create a roux.
Cook roux, stirring constantly, for 8-10 minutes until it reaches a medium brown color.
Add diced onion, bell pepper, and celery to the roux. Cook for 5 minutes until vegetables soften.
Stir in minced garlic and cook for 1 minute until fragrant.
Gradually add shrimp stock, whisking constantly to prevent lumps.
Add diced tomatoes, Worcestershire sauce, and bay leaves. Bring to a boil.
Reduce heat and simmer for 15-20 minutes until sauce thickens.
Return cooked shrimp to the pan and heat through for 2-3 minutes.
Remove bay leaves and stir in lemon juice.
Season with salt and pepper to taste.
Garnish with green onions and parsley. Serve immediately over rice.