You can try this (I have used MySQL version 8.0.34):
CREATE TABLE t (
id INT NOT NULL,
start DATE NOT NULL,
end DATE NOT NULL
);
INSERT INTO t (id, start, end)
VALUES
(1, '2022-04-03', '2022-04-07'),
(2, '2022-04-11', '2022-04-11'),
(3, '2022-05-12', '2022-05-13');
WITH RECURSIVE t_result (id, start) AS
(
SELECT id, start
FROM t
UNION ALL
SELECT id, start + INTERVAL 1 DAY
FROM t_result
WHERE start + INTERVAL 1 DAY <= (SELECT end FROM t WHERE t.id = t_result.id)
)
SELECT id, start AS date
FROM t_result
ORDER BY id, date;
The output from the query:
+------+------------+
| id | date |
+------+------------+
| 1 | 2022-04-03 |
| 1 | 2022-04-04 |
| 1 | 2022-04-05 |
| 1 | 2022-04-06 |
| 1 | 2022-04-07 |
| 2 | 2022-04-11 |
| 3 | 2022-05-12 |
| 3 | 2022-05-13 |
+------+------------+