COM objects require installation on the machine from where it is being used and DCOM requires installation somewhere on the same network.
Any COM object may participate in DCOM transactions. DCOM introduced several improvements/optimizations for distributed environment, such as MULTI_QI (multiple QueryInterface()), security contexts etc.
DCOM demonstrated importance of surrogate process (you cannot run in-proc server on a remote machine. You need a surrogate process to do that.)
DCOM introduced a load balancing.
The fact is dotnet has not replace the COM/DCOM instead it has extended the functionality by introducing new featurs to it.
While dot-NET software can utilize COM components, and COM components can tie into many features of the Dot-NET environment, the two technologies are internally separate. In particular, Dot-NET has been designed to work across the Internet, with firewalls and wide-area networks, whereas DCOM was designed primarily for use on local-area networks.