Dynamic Loading is simply a concept in which a software is written in such a way that when it is packaged to be sent to production (for eg. in a .exe or .jar or .apk ) then any library which is required at runtime is not packaged inside.
Simplest example is in Java when you connect Java to MySQL then you write:-
Class.forName("com.mysql.jdbc.Driver");
Here we connect to the com.mysql.jdbc.Driver Library which is required to be present in the production environment.
Refer here:- https://en.wikipedia.org/wiki/Dynamic_loading#In_Java
Demand Paging is a concept in totally totally different context. It simply means caching (bringing) the process' page kept in HDD to RAM --> ON DEMAND. -> i.e. on MMU's demand.