As usual with hooks this is issue of timing.
- your init function is hooked to admin load process, which works fine for most things;
- however in this specific case function is added to filter in constructor of
WP_Comments_List_Table
class, and object is created inedit-comments.php
after admin loader had been processed.
In my plugin for similar stuff I am removing it at manage_edit-comments_columns
hook.