Why isn't space deallocated after deleting all rows from a clustered table?
I was able to reproduce described behavior. I created the same table, fill it with data and then delete all rows.

After deleting I had a look at indexes:

SELECT * 
FROM sys.dm_db_index_physical_stats(DB_ID(), OBJECT_ID('TableName_Test'), -1, NULL, 'DETAILED')


Results (I hid columns which don't matter):



Thank you,  Scott Hodgin and Erik Darling, you both were partly right and direct me to  the right way in my researches. The issue occurs because Ghost Cleanup process can't clean the version ghost records.

The behavior is similar to one described here: Problem With Too Many version_ghost_records.

Unfortunately, I can't call exactly what is root cause of being the versioned rows still held. I have not found any long transaction on any database which could cause it. 

Index rebuilding and sometimes (as told in the article linked above) server restart help to solve the issue.