Deadlines are extremely important for planning and parallelizing work. Without expectations about when dependent work will be completed, all teams would have to work in serial. This would drastically slow down delivery times. At the same time, deadlines can be frustrating and counter-productive if people disagree about what they actually mean.
Sparingly, is my answer to that question. Deadlines are only helpful when used to decide how many features get built before a project has to launch. Unfortunately, they are more often used to know when the drop-dead date is for cramming in as many features as possible.