Heat oil in a large Dutch oven or heavy-bottomed pot over medium heat. Once the oil is shimmering, add squash, onion, garlic, curry paste, coriander, cumin, salt and red pepper flakes to skillet. Stir to combine.
Cook, stirring occasionally, until onion is translucent, about 8 to 10 minutes. Add broth. Bring the mixture to a boil, then reduce heat and simmer until squash is soft, about 15 to 20 minutes.
While the soup is cooking, toast the coconut flakes in a medium skillet over medium-low heat, stirring frequently, until fragrant and golden on the edges. Keep an eye on them so they don’t burn. Transfer coconut flakes to a bowl to cool.
Once the squash mixture is done cooking, taste and add a little more Thai red curry paste if it’s not quite flavorful enough for you. Remove the soup from heat and let it cool slightly. Working in batches, transfer the contents to a blender (do not fill your blender past the maximum fill line and be careful with the hot soup!). Securely fasten the lid and use a kitchen towel to protect your hand from steam escaping from the top of the blender as you purée the mixture until smooth. Transfer puréed soup to a serving bowl and repeat with remaining batches.
Stir the lime juice into the blended soup. Taste and season with additional salt if necessary. Ladle soup into individual bowls. Use a spoon to drizzle coconut milk over each bowl, then lightly swirl the spoon through the topmost layer for a pretty design. Top the soup with toasted coconut flakes and a sprinkle of chopped fresh cilantro.