メール飛ばしてるのはpostfixなのでその辺の設定かと思ったけど、そうじゃない。
$ echo 'テスト' | sendmail <mail@example.com>
みたいなんでも文字化けせずに送られてくる。ちなみに文字コードは↑のコマンドラインもCronの処理結果もUTF8。文字化けしたメールのソースを見てみると、
Content-Type: text/plain; charset=ANSI_X3.4-1968
なんかおかしいね。下記をcronに設定してやったら、化けなくなりました。
CONTENT_TYPE=text/plain; charset="utf-8"