The best use of dynamic variables in C# I have found in use with deserializing JSON data for which I may not have the schema, or I know is a frequently changing schema.
For everything else I just avoid using it.
What do I use? Well, NewtonSoft’s JSON deserializer and this simple statement:
dynamic apiData = JsonConvert.Deserialize<dynamic>(jsonData);
Simple and neat.