without knowing the columns on your Date Dimension table i assume its called ActualDate, here is a solution which doesnt require any conversion, since it should of already been done for you.
SELECT dimUser.EmpFullName1 [User Name]
, dimUser.MgrEmpFullName1 AS Manager
, dimUser.PrimaryJobName AS [Primary Job]
, dimUser.EmpNo AS [User Number]
, CONVERT(VARCHAR(10), fact.StartDtID, 101) [Start Date]
, CONVERT(VARCHAR(10), fact.EndDtID, 101) [Completion Date]
, dimUser.PrimaryOrgCode
, dimUser.SecondaryOrg1 AS [Secondary Org 1]
, dimUser.SecondaryOrg2 AS [Secondary Org 2]
, dimUser.PrimaryOrgName AS Org
--, fact.EndDtID--Removed
,sd.ActualDateAS StartDate --Added
,dd.ActualDate AS EndDate --Added
, dimUser.EmpStat AS [Emp Status]
, CASE WHEN fact.completionStatusID = '-1' THEN 'Not Satisfied'
ELSE 'Satisfied'
END AS Status
FROM factAttempt AS fact
INNER JOIN dimActivity AS A ON A.ID = fact.ActivityID
INNER JOIN dimUser ON dimUser.ID = fact.UserID
INNER JOIN dimDate AS DD ON DD.DateID = fact.EndDtID
INNER JOIN dimDate AS sd ON DD.DateID = fact.StartDtID --Added
WHERE (dimUser.EmpStat = 'active')
AND (a.code = 'A2102')
AND (fact.StartDtID >= '20130101')
Additionally , this is obviously the data for a cube, why aren't you using the cube to produce this result which would be even simpler?