The exception is thrown in the method Mage_Eav_Model_Resource_Entity_Attribute::_saveOption by this code:
if (!isset($values[0])) {
Mage::throwException(Mage::helper('eav')->__('Default option value is not defined'));
}
This means that $values[0] is not set
$values comes from this code in the same method foreach ($option['value'] as $optionId => $values) {
Apparently in your code $options['value'][Some numeric key here][0] is not set. See how the $options array looks like before passing it to the setOption method (last line in your code).
Best Answer
You should be able to do something like: