The "problem" is the way parameter expansion is done. Example:
$ cat test.sh
#!/usr/bin/ksh
VAR='Test with double size whitespace !'
echo $VAR
echo "$VAR"
$ ksh test.sh
Test with double size whitespace !
Test with double size whitespace !
Spot the difference? In the first example, echo is passed 6 parameters (split on the whitespaces), and by default it outputs them using one whitespace as separator. In the second example, the variable is passed as one parameter, whitespaces and all.
Above result shows output from file1 followed by file2. As you may notice, diff tries to set the result in 300 characters and that's why the output doesn't set on one line.