Why is casting a DATE field to VARCHAR datatype non-deterministic and is there a way to make it deterministic?
CAST is not deterministic because date format may change based on the server settings (i.e. under compatibility before 110 default date format is 0 => "Dec 12 2019  2:11PM" and output dependeds on language).
To make it deterministic use CONVERT and 


  the style parameter must be a constant. Additionally, styles less than or equal to 100 are nondeterministic, except for styles 20 and 21. Styles greater than 100 are deterministic, except for styles 106, 107, 109 and 113. (from documentation below)


More documentation at: Deterministic and Nondeterministic Functions