$dosya_adi değişkeni for döngüsü içine alınmış dolayısıyla her döngüde değişkene atanan veri değişiyor. Şöyle yaparsanız tüm dosyaların name değerlerini array olarak tutabilir ve json dosyasına yazabilirsiniz:
$dosya_adi[] = $_FILES['dosya']["name"][$i];
Ayrıca for döngüsünden önce $dosya_adi = [] ; eklemeyi unutmayın lütfen