I understand that the compounds of transition metal are colourful because of the appropriate energy gap between different d orbitals. But why aren't they also colourful in their solid pure state? For example, why isn't Fe colourful whereas, its compounds are?
Colour is a property of electronic transitions: the transitions in metals are different to those in their compounds
In many discrete compounds of transition metals the colour arises because there are accessible electronic transitions between molecular orbitals in the molecules (usually involving metal d-orbitals) matching the energy of wavelengths of visible light. These transitions are often fairly narrow so giving a wide range of possible colours.
Pure metals are not like that. To simplify a lot, the definition of a metal is having a continuous band of electronic states (not a simple molecular orbital) for the electrons involved in conduction of electricity (the conduction band). This band involves the whole bulk substance, not just isolated atoms of the metal. So the transitions that might involve colour (d-d transitions in a molecule) are not present in the same way: instead transitions occur inside the conduction band or between orbitals and the conduction band. Either way, the narrow transitions giving colour in compounds are now much broader because a wide range of continuous electron energies exist in the conduction band.
This is a gross simplification, but it is good enough to explain the key observation if you don't want to get into the theory behind the electronic structure of metals.