Coloquei um pouco de interatividade no projeto para melhorar a experiência do usuário! Percebam que, além de enumerar as operações, fiz um "else" para o caso de o usuário digitar algo que não uma opção válida.
Apesar de não ter implementado dessa vez, creio que deva colocar toda a estrutura dentro de um "while" para que o programa não encerre enquanto não for realizada a operação.
import 'dart:io';
void main() {
  print("Bem vindo à Calculadora Dart!");
  print("Digite o primeiro número: ");
  double numero1 = double.parse(stdin.readLineSync()!);
  print("Ótimo! Agora, digite o segundo número: ");
  double numero2 = double.parse(stdin.readLineSync()!);
  print("Ok! E qual a operação gostaria de realizar? 1 - soma; 2 - subtração; 3 - multiplicação; 4 - divisão");
  int selecao = int.parse(stdin.readLineSync()!);
  print("Beleza! Agora, me dê só um minutinho que estou fazendo os cálculos..."); 
void soma(){
  var total = numero1 + numero2;
  print("O valor da soma entre $numero1 e $numero2 é $total");
}
void subtracao(){
  var total = numero1 - numero2;
  print("O valor da subtração entre $numero1 e $numero2 é $total");
}
void multiplicacao(){
  var total = numero1 * numero2;
  print("O valor da multiplicação entre $numero1 e $numero2 é $total");
}
void divisao(){
  var total = numero1 / numero2;
  print("O valor da divisão entre $numero1 e $numero2 é $total");
}
 if(selecao == 1){
    soma();
  }else if(selecao == 2){
    subtracao();
  }else if(selecao == 3){
    multiplicacao();
  }else if(selecao == 4){
    divisao();
  }else{
    print("Escolha uma operação!");
    print("Ok! E qual a operação gostaria de realizar?");
    int selecao = int.parse(stdin.readLineSync()!);
  }
}