Using CAST function instead of CONVERT also helps:
WITH cte_days(n, weekd, ddmmyyyy)
AS (
SELECT 0, DATENAME(DW, '09-03-1983'),CAST(CAST('09-03-1983' AS DATE) AS DATETIME)
UNION ALL
SELECT 0+1n+1, DATENAME(weekday, DATEADD(day, 1, '09-03-1983')), DATEADD(day, 1, '09-03-1983')
FROM cte_days
WHERE n < 10
)
SELECT * FROM cte_days