Melt the butter in a large pot over medium heat. Add the beef cubes and cook until browned on all sides, about 6 minutes. Remove the beef and set it aside.
Add the onion, carrots, and garlic to the same pot. Cook for 5 minutes until the onion softens.
Sprinkle the flour over the vegetables and stir for 1 minute to form a roux.
Slowly pour in the beef broth while stirring to avoid lumps. Return the beef to the pot and add the thyme, salt, and pepper.
Bring the mixture to a simmer, then cover and cook on low heat for 1 hour and 15 minutes until the beef is tender and the broth has thickened.
Stir in the spinach and cook for 2 minutes until it wilts. Remove from heat and stir in the lemon zest.