Preheat oven to 350 degrees. Spray a 9x11 glass baking dish with cooking spray.
Place bread cubes onto baking sheet. Drizzle with olive oil and sprinkle with thyme. Bake for 5-10 minutes until toasted (this can be done 1-2 days ahead).
Add oil and 1 TB butter to large nonstick skillet over medium heat.
When butter is melted add the shallots, stir gently until just tender, about 1 minute. Remove shallots, set aside.
Add olive oil to pan and heat on medium. Add Brussels Sprouts to pan. Stir until slightly tender and browned, about 4-6 minutes. Transfer to bowl.
Pour half and half into pan over low heat, and stir to combine. Add rosemary sprig. Turn heat to low and simmer for about 5 minutes. Add a bit of broth if necessary, remove rosemary sprig. Transfer Sprouts back to pan and stir. Add cranberries and nuts, if using. Cook for 1-2 minutes.
Transfer mixture to the prepared baking dish. Spread evenly. Top with cheese and bread cube mixture. Bake for 35 minutes until golden. Can be made ahead and reheated. Add 1/2 cup broth, evenly, to the dish before reheating.