My understanding of your requirement is that you only want to accept lines starting with a date not followed by a dash and a non-zero digit. I recommend using a module to match the date. My choice is no better than
Tux's hand coded regex, but at least it makes the intention clear. It would be convenient if you have an additional requirement to match other date/time formats in your data.
use strict;
use warnings;
use Regexp::Common qw(time);
my $DATE = $RE{time}{tf}{-pat => 'mm-dd-yyyy'};
my @data = <DATA>;
my @wanted = grep {/^$DATE(?!-[1-9])/} @data;
print @wanted;
__DATA__
03-15-2021-1 21.1.0-s103 2021/03/15:14:16:39 21.1 21.10-s103
03-15-2021-2 21.1.0-s103 2021/03/15:14:16:39 21.1 21.10-s103
03-15-2021 21.1.0-s102 2021/03/15:04:00:09 21.1 21.10-s102