Почему alert вызывается несколько раз?
Дело в том, что вы обработчик удаления зачем-то ставите внутри обработчика добавления. Нужно делать так:$('#add_form').click(function() {
    var i = ($('.form:last').attr('id') || 0) + 1;
    $('<div id="'+ i +'" class="form">\n' +
        '<input type="text" class="form_input form-control" " placeholder="Название формы"/>\n' +
        '<textarea class="form_input form-control" rows="5"  placeholder="Описание формы"></textarea>\n' +
        '<span class="remove_form btn btn-danger">Удалить форму</span>\n' +
        '</div>')
    .fadeIn('slow').appendTo('.all_form');
});

$('.remove_form').click(function() {
    if (confirm("Вы хотите удалить форму?")) {
        $(this).closest('.form').remove();
    }
});
P.S. Обратите внимание, я в вашем коде поправил еще некоторые странности.
Потому что вы не должны создавать обработчик клика remove_form внутри обработчика клика add_form. Вынесите наружу.