Will cron job run if page loaded is being served from cache?

It depends on the plugin and the cache method you are using. For example, as far as I remember, WP Super Cache offers two different cache methods:

  1. PHP Cache

  2. HTML Cache

Using the first method creates PHP cache files that still load WordPress’s functions, but do not go through the whole loading process. If this is the case, it means that the PHP functions are executed, and your cron job will probably be processed. However, since the cron jobs are usually in the theme’s functions.php file, and the PHP cache file is usually a PHP template cache, there is a chance that it won’t trigger. You should have a closer look at the generated PHP cache files.

The second method simply creates status HTML files that are served directly. There is no PHP involved in this, so no cron job will be executed.