In a small bowl whisk together soy sauce, orange juice, sesame oil, and half of the grated ginger and garlic. Place fish in a shallow bowl, pour soy sauce mixture over, and allow to marinate for at least 30 minutes.
Heat Dutch oven or large pot with lid heat over medium-low heat. Add pistachios and stir occasionally until toasted and fragrant, about 3-5 minutes. Remove to a small bowl. Heat 2 tablespoons oil over medium heat. Add white part of the sliced green onion (reserve the rest for garnish) as well as the remaining ginger and garlic and a pinch of salt and pepper. Cook, stirring frequently, for about 2-3 minutes or until softened and fragrant.
Add rice to the pot and stir for about 1 minute. Mix in coconut milk and broth and allow to come to a boil. Reduce heat to low and place lid on pot. Cook for 10 minutes.
Working quickly remove lid and stir broccoli into rice. Spread rice mixture into an even layer and place fish on top. Replace lid and continue to cook for 10 minutes then remove from heat and allow to sit covered for 5 minutes.
Transfer fish to a plate. Add juice and zest of lime to the rice mixture and season with salt and pepper to taste. Divide rice and broccoli into bowls and top with fish. Sprinkle each bowl with toasted pistachios and sliced green onions.