The methods for setting new options for an Options field via the API seem to be a bit convoluted - I think it's probably an oversight and it would be worth raising a feature request at GitHub.
There's a method that seems to be primarily intended for the admin back-end: setOptionsString(). You can use it but the way the options are defined (string with line break separator) is a bit weird for API use and it's not easy to get it to play nicely with existing options.
$f = $fields->my_options_field;
$manager = new SelectableOptionManager();
$options = 'red
green
blue'; // you can also set IDs and values if needed
$manager->setOptionsString($f, $options, false); // if last argument is omitted/true you will remove any existing options
Otherwise you could manually create SelectableOption objects, add them to a SelectableOptionArray, and use addOptions(), deleteOptions(), setOptions(), etc, with that SelectableOptionArray. See the module source code. It's hardly a simple process though.
I think what's needed are methods to go from options to PHP array and PHP array to options.