#!/usr/bin/ksh make |& tee ~/log
#!/usr/bin/ksh make 2>&1 | tee ~/log
You are using the Bash specific shorthand
|&, but your script is running with Ksh. Rewrite it to its full, POSIX-compatible form as shown in the example.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.