How about this?

``` ruby
@args = args.map do |arg|
  arg = arg.sub("default_path", "default-path")
  arg.sub!("line_number",  "line-number")
  arg
end
```

* Keeps it in one `map` loop.
* Splits the `sub`s into separate lines (as you rightly mentioned improves readability)
* Uses `sub!` on the second one because we can safely mutate it (since `arg` is a new string created in the block at that point).