When you grey out a control, you are communicating "something is currently disabled, but may become available if you do something else on the page".
The only down-side of this approach is the disabled controls will occupy space on the page, so if those disabled controls are rarely used and/or there are many of them, it could be adding unnecessary visual complexity for very little value.
When you hide something and only reveal it on demand when it is needed (progressive disclosure), it ensures the page is kept simple until circumstances dictate additional controls need to be displayed.
The only down-side of this approach is the page will need to adapt to display the newly revealed controls. It is unlikely the user will be surprised by progressive disclosure because it is a robust interaction pattern that has been around for many years.
Both approaches are valid and have their pros and cons. Ultimately your decision will be based on the value of the additional controls, the quantity of additional controls and the frequency of their use.