Though Openstack is free and open, it has few cons like you may need to have a deep learning curve to master the inner workings to know best of it for making it usable for the expected scenario or business case and also to utilize it fully. Though there is a huge community to support, you may need to spend considerable amount of time in making a stable release and also in addressing pressing issues. In the case of enterprise solution, based on the level of service agreement, you may get quicker & focused responses to integration issues or pricking bugs or design flaws. OpenStack does also appear to be not so user friendly and has challenges in making a quick implementation and also in maintenance phase which in turn increases the amount of effort spent in developing the application.
But people don't want to spend that much of time and they uses available cloud platforms like AWS, Azure. Actually it depends on you, what you want. If you want to learn how cloud works internally or want to use only.
Hope it will clear your doubt,