Difference between High Availability data synchronization across local replicas and DAG
What is the difference between synchronizing from Primary to Secondary and across DAG (amount of data)


The main difference is that in a Distributed AGs, there is a "forwarder" which is the primary replica on the secondary side. The data is transferred once across the wire to the forwarder and then sends it to the replicas in its' cluster. My guess is that you've also set the Distributed AG up as asynchronous, which would also show differences over synchronous.


  Can we enable local synchronization to work similar to the one across DAG 


I'm not sure what you mean, here.


  What factors that affect the amount of data sent across the wire beside the obvious ones


Generally it can be traced back to insufficient disks, high latency networks, overloaded VMs, etc. The way that applications are written, to an extent such as the size and scope of transactions can play a large part too. There are too many variables so I listed the main ones.