Thanks for reaching out to Q&A.
I just want to isolate this issue. What is the behavior when you run this script in your local machine? Does it download everytime you run the script?
If this issue occurs in your local machine then this is related to nltk. If the issue is only seen when the function is deployed to Azure Functions runtime, then there is a possibility that the download happens whenever there is a change in background VM/servers (Azure platform side) that runs the function. Especially with the serverless plans like consumption and Elastic premium. I am not 100% sure about this though. I am not sure which plan you are running, try to choose Function app running on dedicated app service plan SKU and test it.
Please let me know your inputs.