¿Cuáles son las diferencias entre HLD y LLD en un ciclo de vida de desarrollo de software?

Depende de la complejidad de los sistemas.
Para un sistema simple no distribuido HLD puede ser sólo capas lógicas y la interacción entre ellas y LLD puede ser la clase real y las estructuras de los métodos en esas capas.
Para un gran sistema distribuido de tipo SOA con digamos 50 componentes HLD podría ser los componentes involucrados y la interacción entre esos componentes (flujo de información) y LLD podría ser cómo los propietarios de los componentes individuales diseñan su parte de todo el rompecabezas.
Puede haber HLD y LLD en LLDs de forma recursiva en función de lo grande que sea el problema en el que se está trabajando.

Sólo tomando un ejemplo muy básico.
Un sistema de Registro/Ingreso en una aplicación web.
En forma de texto HLD y LLD podría ser vagamente como
HLD
1. Habría una capa de UI para tomar la entrada del usuario
2. Habría una capa de servicio para hacer validaciones, hacer la encriptación de la contraseña, la autenticación y la comunicación con la capa de almacenamiento
3. Habrá una capa de almacenamiento para almacenar los registros y para comparar con los inicios de sesión.

LLD
1. La interfaz de usuario será de 2 cajas y 1 botón de envío
2. El servicio será UserService con métodos como
register(User user)
login(String username, String password)
3. El almacenamiento será una db relacional y habrá una tabla llamada user con campos como id, username, password.