TLS is designed to provide three attributes: privacy, integrity, and authenticity. That is, the data is encrypted so others cannot read it (privacy), it is protected from tampering or modification (integrity), and it comes from the expected source (authenticity). Without TLS, you don't have those things.
It is true that between Cloudflare and the user, this data is protected. However, depending on the endpoints between a particular Cloudflare server and S3, the data may transit other networks, including those of companies known to intentionally tamper with data (e.g., Verizon) or those in countries that may have autocratic governments.
Whether not using TLS between Cloudflare and S3 is a problem depends on the consequences of losing these guarantees. For example, would it bother you if a third party injected malware or trackers into your site? (These kinds of things have been known to happen in the past when part of a connection is unsecured.) If so, then TLS is probably warranted.
I should point out that S3 buckets do support TLS just fine if you're using Amazon's domains, and if that's an option in your scenario, I strongly recommend it since it's already set up and available.