How to add Date Picker in Dynamic Add/Remove Custom Fields (Repeater Fields)

WordPress has the jQuery datepicker already included. So you can enqueue the default WP script. However, as far as I know, WP doesnt include the necessary styling for the datepicker!
So try to enqueue the WP script, and for example, styles from external source:

function my_datepicker_enqueue() {
            wp_enqueue_script( 'jquery-ui-datepicker' ); // enqueue datepicker from WP
            wp_enqueue_style( 'jquery-ui-style', '//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/base/jquery-ui.css', true);
}
add_action( 'admin_enqueue_scripts', 'my_datepicker_enqueue' );

Create a new HTML input field with atleast with a class and a name.
HTML of the input field: (you already have some input fields defined, so jump to the script)

<input type="text" name="_custom_datepicker[]" id="_custom_datepicker[]" class="my-custom-datepicker-field" value="<?php echo $your_saved_value; ?>" />

Than add a script to init the datepicker for our new element.
Script: (make sure that you target the right input element, we are looking at the defined class here, cause we want to use multiple instances.)

jQuery(document).ready(function($){
    $('.my-custom-datepicker-field').datepicker({
        dateFormat: 'dd-mm-yy', //maybe you want something like this
        showButtonPanel: true
    });
});

Update:
I had some problems reading your code at first, and you also have several errors in your code. First I could see the same strange behaviour. I have now setup a testplugin on a dev site, and there it is now working.

1: You set up your save function so that you cannot just enter a date and save.
You will have to either add a amount, title or description also, to be able to save.
I think this is intended by you?

2: In the save function you have the following code:

if ( $reward_descriptions[$i] != '' ) :
    $reward_data[$i]['reward_date'] = stripslashes( $reward_dates[$i] );
endif;

So only when the description field is not empty the date will get saved?!
Seems this was a typo because the other fields look good.
Change to:

if ( $reward_data[$i] != '' ) :
    $reward_data[$i]['reward_date'] = stripslashes( $reward_dates[$i] );
endif;

3: In your callback code you have these fields as datepicker fields:

<td><input type="text" name="_custom_datepicker[]" id="_custom_datepicker[]" class="my-custom-datepicker-field" value="<?php echo esc_attr( $field['reward_date'] ); ?>" /></td>

and

<td><input type="text" class="my-custom-datepicker-field" name="_custom_datepicker[]" /></td>

Both named _custom_datepicker[].
But in your save function you try to save fields called reward_date instead.

Also the id should be unique. But you add the same id to all datefields.
You could just remove the id from these fields, its not needed anyway.

4. If you add fields dynamically like you want to, you need to change the datepicker JS function.
And instead of loading the JS code inline (and multiple times like you did), I recommend enqueuing one JS file.
So try to replace your JS code with something like this:

jQuery(document).ready(function($){

    // your default code
    $( '#add-row' ).on('click', function() {
        var row = $( '.empty-row.screen-reader-text' ).clone(true);
        row.removeClass( 'empty-row screen-reader-text' );
        row.insertBefore( '#repeatable-fieldset-one tbody>tr:last' );
        return false;
    });

    $( '.remove-row' ).on('click', function() {
        $(this).parents('tr').remove();
        return false;
    });

    //changed to be used on dynamic field which gets added and removed from DOM
    //if the element with the class .my-custom-datepicker-field gets focus, add datepicker
    $(document).on('focus', '.my-custom-datepicker-field', function(){
        $(this).datepicker({
            dateFormat: 'dd-mm-yy', //maybe you want something like this
            showButtonPanel: true
        });
    });

});

After I fixed these things and enqueued the JS file with the code like WordPress wants it to, it is now working.