A character-oriented terminal communicates with its host one character at a time as compared with a block-oriented terminal that communicates with its host in blocks usually consisting of chunks of text.
A character-oriented terminal submits each character from the terminal to the host as it is typed.
Character-oriented terminals, are less complex to program, and are more powerful and general—many types of user interfaces cannot be implemented (or are difficult or clumsy to implement) with block-oriented terminals, but can be done with character-oriented terminals. Some particular examples include visual editors, command line interfaces and roguelike games. Note however, the first two do have implementations for block-mode terminals (IBM mainframe and minicomputer CLIs and visual text editors), but they have certain limitations compared to their character-oriented cousins.
Character-oriented terminals have historically been the most common type, and include UNIX-derived systems, and most DEC systems (VT100, VMS, etc.).
DEC systems mainly used character-oriented terminals, but the VT131 and VT132 had a block mode capability.