What you call a “terminal” is actually a terminal emulator, i.e. a
computer program intended to emulate an old school computer
terminal. CRT-based terminals were in turn designed to emulate still
older “hard-copy terminals”, like the venerable ASR-33. A hard-copy
terminal (also called “teletypewriter”) is basically a typewriter fitted
with a serial port. Whatever you type is sent along the wire. Keystrokes
are sent immediately: these devices did not have memory (which was
hugely expensive at the time) and could not buffer your input. The
Teraterm program you are using inherits from this history: like a
teletypewriter, it sends your keystrokes immediately.
The Arduino serial monitor, in contrast, does not transmit as you type.
Instead, you type a line of text and, when you hit “Send”, the whole
line is sent at once, at the full speed of the serial port.
This makes a significant difference in terms of transmission timing.
With Teraterm, the Arduino program sees long pauses (which depend on
your typing speed) between successive characters. With the serial
monitor, successive characters are spaced by roughly 87 µs. If your
Arduino code properly buffers its input until it receives an
end-of-line, then it will work equally well with Teraterm and with the
serial monitor. If, on the other hand, your code gets impatient and
times out while you are typing, then it will not get multi-character
commands you type on Teraterm.
Note that, if you want your Arduino program to be friendly to terminal
users, you may want to echo the characters you receive, as local echo on
the terminal is usually not on by default. More importantly, you may
want to handle the backspace key (which can send either ASCII BS or
ASCII DEL) to let the user fix their typos. See how this is done in this
very simple command-line interpreter.