La parte javascript dovrebbe essere modificata così per semplificare un pò
	codice:
	 <script>  
 $(document).ready(function(){  
      var i=0;  
      $('#add').click(function(){  
           i++;  
           $('#dynamic_field').append('<tr id="row'+i+'"> <td><input type="text" name="name[]" placeholder="inserisci ingrediente" class="form-control name_list" /></td> <button type="button" name="remove" data-id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');  
          $('#dynamic_field').append('<tr id="row'+i+'"> <td><input type="text" name="qt[]" placeholder="inserisci ingrediente" class="form-control qt_list" /></td> <button type="button" name="remove" data-id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
      }
    );  
  
      $(document).on('click', '.btn_remove', function(){  
           var button_id = $(this).data("id");
           $('#row'+button_id+'').remove();  
      });
      $('#add_name').on('submit', function(e){  
           e.preventDefault(); //Blocca il form submit
          const myForm = $(this);
           $.ajax({  
                url:"ricette.php",  
                method:"POST",  
                data: myForm.serialize(),
                success:function(data)  
                {  
                     alert(data);
                     console.log(data);// Con console log puoi vedere tutti i dati dalla console e non in un alert
                     myForm.trigger('reset'); //reset di tutta la form
                       
                },
                error: function(){
                  //qui puoi fare qualcosa se fallisce la chimata (non l'errore gestito da PHP)
                },
                always: function(){
                  //qui puoi fare qualcosa sia che vada in success o in error
                }
           });  
      });  
 </script>
 
Nell'append degli elementi al posto di id="..." metti un data-id="..."
	codice:
	<button type="button" name="remove" data-id="'+i+'" class="btn btn-danger btn_remove">
 
Nel PHP potresti fare quindi questo
	codice:
	 <?php  
 $connect = mysqli_connect("localhost", "root", "", "miodb");  
 $number = count($_POST["name"]);  
 echo $number;
 
 $result = array("error"=>false, "data"=>array());
 if($number > 0)  
 {    
      //Se tutto ok nel ciclo puoi riempire l'array da ritornare altrimenti potrai inserire errori vari o altro
      for($i=0; $i<$number; $i++)  
      {  
           if(trim($_POST["name"][$i] != ""))
        
           {  
                $sql = "INSERT INTO prova (campo,qt) VALUES('".mysqli_real_escape_string($connect, $_POST["name"][$i])."','".mysqli_real_escape_string($connect, $_POST["qt"][$i])."')";  
                $insert = mysqli_query($connect, $sql);  
                if(!$insert){
                  $result['error'] = true; //O altro diverso da false
                }else{
                  $result['data'][$i] = "Inserimento ok per indice " . $i; // o qualsiasi cosa tu voglia ricevere lato javascript
                }
           }          
      }        
 }  
 else  
 {   //qui valorizzi in caso di errore
      $result['error'] = "Compilare i nomi!";
 }
 //Erorre o success, ritorni il result per capire cosa è avvenuto lato server
 header('Content-Type', 'application/json');
 echo json_encode($result); //questo sara il data nel success() di jQuery.ajax e si vedrà in console.
 ?>
 
Devi solo fare un check per vedere come sarà formattato ora l'array in POST per leggere sia i name che le quantità