Quien te ha dicho que sirven para lo mismo!
Un caso ejemplo para que entiendas una de las diferencias.
Tienes una tabla personas con un id que se incrementa automaticamente.
Insertaste 300 registros el valor del id del primero es 1 y el del ultimo es 300.
A partir de ahora dos escenarios:
* Si usas DELETE e insertas 100 registros:
Despues de ejecutado, el id del primer insertado es 301 y el del ultimo es 400.
* Si usas TRUNCATE e insertas 100 registros:
Despues de ejecutado, el id del primer insertado es 1 y el del ultimo es 100.
Te recomiendo que leas la documentacion de TRUNCATE [1] para que aprendas las verdaderas diferencias y saber cuando no puedes usar esa sentencia.
[1]
http://msdn.microsoft.com/es-es/library/ms177570.aspx