If you feel that you have to give the correct destination filename, which I don't think you should need to do, then use your filename globbing pattern (which is not a regular expression) in a loop:
for pathname in /my/path/for/the/image/image-abc-*.bin
do
[ -e "$pathname" ] &&
scp "$pathname" "mydevice:flash:$(basename "$pathname")"
done
This would copy all files whose names matches the given globbing pattern. The -e test makes sure that the pathname in $pathname actually exists before calling scp (the pattern would remain unexpanded if there was no matching names found).
The basename utility is used here to extract the filename portion of the pathname. This is then used as the destination filename. One could also use the parameter substitution "${pathname##*/}" in place of the command substitution calling basename.
If you're certain that your pattern would only match a single file, you could also do
set -- /my/path/for/the/image/image-abc-*.bin
[ -e "$1" ] && scp "$1" "mydevice:flash:$(basename "$1")"
This is essentially the same thing as only running the first iteration of the above loop, using the positional parameters to hold the expanded list of pathnames matching the pattern.