StaticResource loads soon on XAML load and does not is more modified. It is preferred because it gives more performance. The entire WPF mechanism knows that it does not need to be monitoring it.
DynamicResource is an expression (it's like a variable) which indicates what the resource is, then you have the flexibility to change at run time which resource is used. Your load effectively occurs only when the resource needs to be used, so it can even be a resource to be created. Just change what will result in the expression that the resource may be different. A change will trigger changes across the entire screen tree.
In Microsoft documentation has a list of scenarios in that it can be used.
Idonothaveconclusiveinformation,butitseemsthattherearenodynamicfeaturesinUWPbecausetheyhavelearnedthatitbringsmoreproblemthanbenefits. This can be useful .