@P.Deschuytter Hello and welcome to Microsoft Q&A.
I understand you are trying to migrate from Azure Storage Fileshare to Azure Storage Blob while altering file names. You are seeking advice.
You are correct it is technically possible. However it will be rather unpleasant. Before I get to that, I'd like to make a suggestion.
You are currently targeting Blob storage. I highly recommend you do Azure Data Lake Gen2 instead. That is, enabling Hierarchical namespace feature on your blob storage account. This feature can only be turned on at creation. It will improve performance and access times by making the folders and subfolders 'real' and not just imaginary. Without Hierarchical namespace, all the blobs are sharing the same namespace, the folders are really just parts of the file name. Hierarchical namespace allows you to do fine grain access control.
Okay, with that said, onto the Data Factory part.
So ADF Copy activity has a "Recursively" option on the source side. This lets all the subfolders get included in the copy. There is also an option to preserve the folder structure. There is also an option to preserve file attributes. These let you copy everything in one go.
However, these will preserve the file names, without opportunity to change to lowercase.
To copy while change to lowercase, one needs to first get list of files, iterate, and then specify them in the copy activity. Both in sink and source. It ends up being a lot like your current solution, except there are limits on Get Metadata (to list files) and levels of looping (no loops within loops), which make deep nesting problematic, and turns into a breadth-first-tree-traversal. Each layer of folder depth makes the pipeline more complicated. It really is painful.
The Fileshare has the "Rename File" operation, which is absent in both blob and gen2. Instead of renaming at copy time, can you rename first, then copy? I think that might be more performant with available tools. TBH, I almost never touch the Fileshare stuff.
Although there is no rename operation on blobs, there is a "copy blob" operation which could do the renaming for you. Unfortunately it is blob-to-blob. It could be useful if you copied all data with filenames as-is, then set a script to go through and do the copy-rename.
There are some characters permitted in Fileshare naming that are not permitted in blob / gen2 naming.