For small CSVs you could create this as long text string that you then convert to base64 and store as a file on S3 using Bubble’s file upload interface. For larger projects you could build a small AWS Lambda that takes a couple of Bubble API endpoints, first to read data from, and the second to call with an AWS S3 URL that contains the CSV. The AWS Lambda simply reads data, builds a CSV, converts to base64, and stores it on S3. None of it is as bad as it sounds.
When in doubt offload data processing onto a secondary service. The price point of AWS Lambda for data processing is far better than Bubble, which is aimed at hosting and content delivery. Two different problems.