There has been fixes around performance for dynamic properties (I cant exactly remember when that was done). So from that point I would not say you should avoid them. However the editor experience for dynamic properties are not that smooth since they are edited in a legacy dialog.
What is your purpose for having dynamic properties?
If it is for the "inheritance" support it is quite easy to implement a getter that looks if a property has a value on a specific instance and if not traverse upwards until it find a value.
If it is for storing "common settings" you could create a specific "Setting Page" (many also uses StartPage to hold settings) and read setting values from that page.
Thank you for the anwser, Johan.
Settings Page is a great pattern for storing common settings. The use case was for inheritance, and you are right, it would be easy to implement it with properties.
There's a lot of old talk about avoiding dynamic properties with CMS 5 and 6 due to performance issues. Does CMS 7.5 face the same problems with performance, or has the implementation improved?