Все строки в Memo заканчиваются переводом строки, в том числе и последняя, поэтому так и происходит. Если уж нужно по другому, то сохраняй самостоятельно:
	Код:
	procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  f: TextFile;
begin
  AssignFile(f, 'abc.txt');
  Rewrite(f);
  i := 0;
  while i<Memo1.Lines.Count-2 do
    writeln(f, Memo1.Lines[i]);
  write(f, Memo1.Lines[Memo1.Lines.Count-1]);
  CloseFile(f);
end;