Вы открываете новый выходной файл внутри цикла while, но не записываете в него данные, пока не достигнете условия $cl == $make_key.
$make_key = 10;
$cs = 0; //счетчик вход. файлов
$files = file("./data/phone.dat") or die ("Нету файла для крон !...");
foreach ($files as $file) {
  $cl = 0; //текущая строка
  $cf = 0; //текущий файл (выходной)
  $outdir = './data3/';
  $source = fopen($file, 'r');  
  $outhndl = fopen($outdir.'phone-'.$cs.'-'.$cf.'.dat', 'w');
  while (!feof($source)) {
    fputs($outhndl, fgets($source, 4096)); //записываем в новый файл что считали с входного
    $cl++;
    if ($cl == $make_key) { //как только набралось N строк
      $cl = 0;
      $cf++;
      fclose($outhndl); //закрываем выходной файл
      $outhndl = fopen($outdir.'phone-'.$cs.'-'.$cf.'.dat', 'w'); //открываем новый...
    } //end if
  } //end while
  $cs++;
  fclose($source);
  fclose($outhndl); 
}