I am thinking about 3 major reasons : concurrency limits, timeout issues, or resource constraints.
By default, the ForEach activity in Azure Data Factory runs with a concurrency of 20. If you are running more tables, the remaining ones might be waiting for their turn, leading to timeout or other issues.
You can increase the concurrency in the ForEach activity settings. However, make sure your environment can handle the increased load.
Use the Monitor tab to check the detailed logs of each activity. Look for any failures or timeouts that might be causing the issue.
Also, check if your DF instance or the underlying data sources are facing resource constraints. Scaling the source database can help.