cmwetherell do those speed tests give you a list of resources that it claims aren't cached?
Some things are cached server-side in Flarum, but not everything. Compiled asset files are cached in the sense that we only re-generate them when needed. All HTML output is generated dymanically, but from cached Laravel blade templates.
The htaccess that comes with Flarum tells Apache to add some headers for client-side cache. But those headers are only added if the expires Apache module is enabled.
Looking at the page you linked, I suppose it's those headers for client-side caching that the test report missing. You could check whether the Expire headers are present in the responses from your server. If they are not, the Apache module might be disabled.
When using proxy services like Cloudflare, the proxy service might alter or add its own headers for client-side caching of static resources.