> How do I change the mixed-in method at runtime ?

You could mean a few things by this.
1) You can change a modelDuck to fly using a different strategy as
shown in the test code already given:
modelDuck.fly
  modelDuck.extend FlyRocketPowered
2) You can change all ModelDucks' fly strategy like this:
class ModelDucks
  include FlyRocketPowered
end
or like this:
ModelDucks.instance_eval {include FlyRocketPowered}
3) You can change the implementation of a strategy like this:
module FlyRocketPowered
  def fly() puts "Upgraded rockets!!!" end
end
or like this:
FlyRocketPowered.instance_eval {
  define_method(:fly) { puts "Upgraded rockets!!!" }
}

> Also, is the mixin class-level or object-level?

Above, I defined instance (object-) methods in the fly and quack
modules. By including those modules, classes (ducks) gain those
instance methods.

In my delegation example, I defined fly as a method of the FlyWithWings
class itself (call this like so: FlyWithWings.fly).

Cheers,
Dave