As Mike said - you can see if you look at the code for CActiveRecord.
$this->setAttribute(‘field’, ‘value’) will always be very slightly faster than $this->field = ‘value’ because the ‘field’ attribute doesn’t actually exist as such in the class, so doing $this->field = ‘value’ actually calls the PHP magic setter method __set($field, $value), which is defined in CActiveRecord to run the setAttribute() method. So basically, $this->field = ‘value’ is a wrapper for $this->setAttribute(‘field’, ‘value’).
So, if you want to make a very tiny gain in speed, then use setAttribute(), but if you want perhaps to gain in readability then just use $this->field = ‘value’.