Синтаксис 750_000
действителен для числовых литералов в исходном коде, где он просто игнорируется при заполнении значения. Это недопустимо при использовании строки, которая уже была создана (например, чтение из аргументов командной строки) в качестве числа. Числа могут храниться в строках с научными обозначениями, как вы заметили. В качестве альтернативы вы можете удалить подчеркивание самостоятельно:
use strict;
use warnings;
use Time::HiRes 'usleep';
my $num = shift;
$num =~ tr/_//d;
usleep $num;