Technical debt is a concept used in Agile practices to identify actions not done, completing a full implementation of a functionality. This is a consious decision made to be able to showcase progress made within the iteration with the intention to fix this in coming iterations if prioritised. The reasoning behind having technical debt would be to, as fast as possible, drive the dialogue between stakeholders and implementors about development direction. The speed increase found in Agile practices is very much due to what you leave out as not necessary not that you work faster.
The concept of technical debt do not remove following Definition of Done, DoD, delivering working code in the end of the iteration or allowing for a phased approach of delivering a large change similar to traditional waterfall thinking.