My database size was 1TB and its full export size is 300GB.
After imported db to new environment, db size reduced to 700GB. What could be reason for this ?
This is exactly what I would expect of any good RDBMS.
A database that has been used for a long amount of time will fragment. Your efficiency of the fragmented database is 70%, which I would say is pretty good.
When importing the data into a fresh database, there will be no fragmentation, but after you have deleted and inserted lots of rows, you will see fragmentation will hit you again.