My guess here is that the first time a file is uploaded the Lambda function is being initialised and that leads to a longer start time - what is called a "cold start". Subsequent invocations are "warm starts" and are therefore faster.
There are ways to minimise cold start times so it's worthwhile starting your reading at this blog post.
How to shorten the API response time in a API GW + Lambda solutionasked 6 months ago
How to upload video files using rest API after receiving an "upload URL"
Getting no response from an pre-signed URL upload to S3
S3 Put API taking time for the first document uploadasked 2 months ago
Are we billed a put-request for each part with s3 multipart upload or only once for the final merged file?Accepted Answerasked 5 months ago
s3 create Presigned Multipart Upload URL using APIasked 7 months ago
S3 pre signed url with block public access on a bucketAccepted Answerasked 3 years ago
AWS API Gatway to upload File To S3 without AWS LambdaAccepted Answerasked 6 months ago
does S3 signed url (for put request) support Content-MD5 header?Accepted Answerasked 10 months ago
How to enable presigned S3 URL for different users?asked 9 months ago