There are three general kinds of LCD: those with bare glass, those with a built-in driver, and those with a built-in controller. An LCD with bare glass can be driven well using logic-level microprocessor pins if it doesn't have too many segments. A non-multiplexed ("static") display with N segments will require N+1 pins. A 3:1 multiplexed display with 3N segments will require N+3 pins. Yielding good contrast with more than 3:1 multiplex will require something other than logic-level pins. Driving a static display will require flipping the state of all the pins about 30-100 times/second except when the display is totally off. Driving a multiplex display will require changing the state of the pins about 160+ times/second (lower frequencies will start to flicker).
An LCD driver will include logic to interface a display to a small number of pins, but will generally require that something continuously feed the state of all the segments. A 320x240 LCD panel I used some years back had four data pins, a dot clock, a row clock, and a frame clock. About 30,000 times/second it's necessary to feed 80 groups of four pixels and then hit the row clock. The timing of pixels within each line doesn't matter, provided all 80 groups get loaded before the row clock hits, but the rows need to be hit at a consistent rate. It's necessary to hit the frame strobe at a constant rate that should be about once every 240 rows, but could be a little slower (in my project, I think I used 250 rows so as to allow time for my firmware to reload DMA registers for the next frame).
An LCD controller will include enough internal RAM to hold all of the segments or pixels on the display and show them continuously without outside intervention. Controllers are easier to work with than drivers, but if a microcontroller is fast enough to work with an LCD driver it will often be able to perform faster display updates than would be possible using a controller. A typical graphics controller will expect a CPU to send a command meaning something like "get ready to accept pixels at coordinate 143,219, counting in the increasing Y direction until 150, and then wrapping with increasing X coordinates", and then follow that command with a suitable bunch of pixel data. Common RGB graphics chips can connect via four-wire serial interface, but will require sending sixteen bits of data for each and every pixel. Even a slow 1970s microprocessor would have no trouble showing graphics using typical integrated-controller LCD, but loading a full screen of graphics would take awhile.