"CPU time" is the time taken by your code to execute, excluding database transaction time, callout time, etc. It is 10,000 ms for synchronous transactions.
"Time limit exceeded" means your transaction waits for more than 120 seconds and your action was not executed within time frame. For example, you are waiting for response on call from webservice and your external system fails to respond within 2 minutes, or you have many rows to retrieve from a table with huge volume and the query times out.
Consider some options to find cause:
1) Data volume of your object that's being queried. Consider indexing to reduce time out issues.
2) Remove unnecessary for loops and make your queries streamlined. Use inline SOQL instead of collecting in collection and then looping. This will help in CPU time reduction.