No, that's pretty much what they're doing. Now, if there is not a leading wildcard and the field is indexed, which is the usual situation, the database engine can apply the regular expression to the index. So, for example, if you write
SELECT *
FROM employees
WHERE last_name LIKE 'Cav%'
the database can use the index on LAST_NAME to find all the rows where the last name begins 'Cav'. On the other hand, if you had something like
SELECT *
FROM employees
WHERE last_name LIKE '%av%'
the database would have to scan the entire table (or the entire index) and evaluate the expression against the full LAST_NAME value. Obviously, that's very expensive.
Most of the better relational databases have facilities to do full-text search in a more efficient manner by constructing different sorts of indexes and text catalogs but these don't use the LIKE keyword. For example, here's a nice article that discusses full-text search in PostgreSQL.